Numpy学习记录2

创建一个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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值