第1次作业-Numpy练习

1.创建一个边界值为1而内部都是0的数组,图例如下:
[提示:]解此题可以先把所有值都设置为1,这是大正方形;其次,把边界除外小正方形全部设置为0。
本题用到numpy的切片原理。多维数组同样遵循x[start:stop:step]的原理。

[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

 

import numpy as np

arr = np.ones((10,10))
arr[1:9,1:9] = 0
print(arr)

2.在数组主对角线上创建一个值为1,2,3,4的5x5矩阵,图例如下:

[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]

import numpy as np

arr = np.arange(1,5)
print(np.diag(arr))

3.数组归一化操作
生成一个随机的5*5矩阵,找出最大值和最小值,然后把最大值和最小值分别用1和0表示,其他值则介于在0和1中间。

import numpy as np

a = np.random.rand(5,5)
print("随机5*5矩阵为\n",a)

max_a = np.max(a)
m = np.argwhere(a == max_a)
min_a = np.min(a)
n = np.argwhere(a == min_a)

a[m[0][0]][m[0][1]] = 1
a[n[0][0]][n[0][1]] = 0

print("最大值的索引为:",m[0])
print("最小值的索引为:",n[0])
print("修改后的矩阵为\n",a)

 运行结果如下: 

 

posted @ 2019-09-20 11:01  while-True  阅读(209)  评论(0)    收藏  举报