第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 x=np.ones((10,10),float) #创建一个10行10列数据类型为float,元素全为1的数组 x[1:9,1:9]=0 #将数组第2行到第9行,第2列到第9列的数值全部修改成0 print(x)
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 a = np.zeros((4,4),int) #创建一个4行4列数据类型为int,元素全为0的数组 for i in range (4): for j in range(4): if(i==j): #判断数组的横纵坐标是否相等 a[i][j]=j+1 print(a)
3.数组归一化操作
生成一个随机的5*5矩阵,找出最大值和最小值,然后把最大值和最小值分别用1和0表示,其他值则介于在0和1中间。
import numpy as np x=np.random.rand(5,5) #随机创建5行5列的数组 max=x.max() #获取数组中的最大值 min=x.min() #获取数组中的最小值 for i in range(5): for j in range(5): if(x[i][j]==max): #判断x数组中的哪个值与最大值相等 x[i][j]=1 #将该值设置为1 if(x[i][j]==min): #判断x数组中的哪个值与最小值相等 x[i][j]=0 #将该值设置为0 print(x)
运行结果:


浙公网安备 33010602011771号