目录
numpy索引和切片
In [24]: t2
Out[24]:
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
In [9]: t2[1] #取第2行
Out[9]: array([ 6, 7, 8, 9, 10, 11])
In [10]: t2[2] #取第3行
Out[10]: array([12, 13, 14, 15, 16, 17])
In [11]: t2[2:] #取第3行到最后
Out[11]:
array([[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
In [12]: t2[1:] #取第2行到最后
Out[12]:
array([[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
In [13]: t2[:1] #取1行
Out[13]: array([[0, 1, 2, 3, 4, 5]])
In [14]: t2[1]
Out[14]: array([ 6, 7, 8, 9, 10, 11])
In [15]: t2[:2] #取2行
Out[15]:
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])
In [16]: t2[1,:] #行列以逗号隔开,取第2行
Out[16]: array([ 6, 7, 8, 9, 10, 11])
In [25]: type(t2[2,3])
Out[25]: numpy.int32
In [26]: t2[2:3,3:4] #取2行和3列的交集
Out[26]: array([[15]])
In [27]: t2[2:4,3:5] #取3.4行和4.5列的交集
Out[27]:
array([[15, 16],
[21, 22]])
In [29]: t2[[1,2],[3,4]] #取1行3列和2行4列的数值
Out[29]: array([ 9, 16])
In [30]: t2[[0,1,2],[0,3,4]] #取0行0列、1行3列和2行4列的数值
Out[30]: array([ 0, 9, 16])
numpy三元运算符
In [42]: t3=np.arange(24).reshape(4,6)
In [43]: t3
Out[43]:
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
In [44]: np.where(t3<=10,100,300) #条件运算
Out[44]:
array([[100, 100, 100, 100, 100, 100],
[100, 100, 100, 100, 100, 300],
[300, 300, 300, 300, 300, 300],
[300, 300, 300, 300, 300, 300]])
numpy中的clip(裁剪)
In [45]: t4=np.arange(24).reshape(4,6)
In [46]: t4.clip(10,18) #小于10的替换成10,大于18的替换成18
Out[46]:
array([[10, 10, 10, 10, 10, 10],
[10, 10, 10, 10, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 18, 18, 18, 18, 18]])
numpy中的nan和inf
In [51]: t5=np.arange(24).reshape(4,6)
In [52]: t5=t5.astype(float) #修改成浮点型才能修改nan
In [53]: t5[3,3]=np.nan
In [54]: t5
Out[54]:
array([[ 0., 1., 2., 3., 4., 5.],
[ 6., 7., 8., 9., 10., 11.],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., nan, 22., 23.]])
In [55]: t5[3,3]
Out[55]: nan