创建一个3*3的单位矩阵
data1 = np.ones((3,3))
print(data1)
#ones创建的是全为1的矩阵
data2 = np.eye(3)
print(data2)
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
创建一个3*3*3的随机数组
data3 = np.random.random((3,3,3))
print(data3)
[[[0.96122764 0.79137191 0.81144747]
[0.36489951 0.2150056 0.40223262]
[0.17561173 0.11556956 0.11438449]][[0.57539401 0.05452655 0.41858823]
[0.61075158 0.85044459 0.53300527]
[0.74273879 0.22115229 0.06526779]][[0.82578228 0.83033882 0.61380369]
[0.89208507 0.2884163 0.19829078]
[0.38109379 0.58143571 0.65105512]]]
创建一个5*5的随机数组并找到它的最大值和最小值
data4 = np.random.random((5,5))
data4max,data4min = data4.max(),data4.min()
print(data4)
print("最大值和最小值分别为",data4max,data4min)
[[0.51522352 0.81727843 0.33172687 0.49555143 0.20535614]
[0.32080787 0.3978582 0.35425181 0.39158552 0.55120471]
[0.16951007 0.71617955 0.00926992 0.86710714 0.77188444]
[0.89561285 0.03344839 0.27614132 0.68012729 0.34290747]
[0.53524627 0.9996048 0.40433958 0.36833684 0.36084197]]
最大值和最小值分别为 0.9996048041327269 0.009269920816494692
创建一个长度为10 的随机向量并找到它的平均值
data5 = np.random.random(10)
print(data5)
data5mean = data5.mean()
print("平均值为:",data5mean)
[0.07519172 0.41908725 0.49298613 0.42665801 0.90480282 0.86292301
0.37207591 0.14149127 0.69479497 0.9843239 ]
平均值为: 0.537433498758191
创建一个二维数组,起中边界值为1,其余为0
data6=np.ones((5,5))
data6[1:-1,1:-1]=0
print(data6)
[[1. 1. 1. 1. 1.]
[1. 0. 0. 0. 1.]
[1. 0. 0. 0. 1.]
[1. 0. 0. 0. 1.]
[1. 1. 1. 1. 1.]]
对于一个存在数组,如何添加一个用4填充的边界
data7=np.ones((5,5))
data7=np.pad(data7,pad_width=1,mode='constant',constant_values=4)
print(data7)
[[4. 4. 4. 4. 4. 4. 4.]
[4. 1. 1. 1. 1. 1. 4.]
[4. 1. 1. 1. 1. 1. 4.]
[4. 1. 1. 1. 1. 1. 4.]
[4. 1. 1. 1. 1. 1. 4.]
[4. 1. 1. 1. 1. 1. 4.]
[4. 4. 4. 4. 4. 4. 4.]]
Nan
print(0*np.nan)
print(np.nan==np.nan)
print(np.inf>np.nan)
print(np.nan-np.nan)
print(0.3==3*0.1)
nan
False
False
nan
False
空值不参与运算,不管大于等于小于都是false,规定空值不等于任何书,所以nan≠nan
创建一个5*5的矩阵,设置1,2,3,4,落在其对角线下方的位置
data8 = np.diag(1+np.arange(4),k=-1)
print(data8)
#创建一个5*5的矩阵,设置0,1,2,3,4,落在其对角线上
data9 = np.diag(np.arange(5),k=0)
print(data9)
[[0 0 0 0 0]
[1 0 0 0 0]
[0 2 0 0 0]
[0 0 3 0 0]
[0 0 0 4 0]]
k=0,落在对角线上
创建一个8*8的矩阵并设置成棋盘样式
data10=np.zeros((8,8),dtype=int)
data10[1::2,::2]=1
data10[::2,1::2]=1
[[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]
[0 1 0 1 0 1 0 1]
[1 0 1 0 1 0 1 0]]
plt.figure()
plt.imshow(data10, cmap=plt.cm.gray)
plt.show()

考虑一个(6,7,8)形状的数组,其第100个元素的索引(x,y,z)是什么?
index_1=np.unravel_index(100,(6,7,8))
print(index_1)
(1, 5, 4)
1018

被折叠的 条评论
为什么被折叠?



