创建 ndarry类型
方法:
指定数组的数据类型
t4 = np.array(range(1,4),dtype="i1")
--> i1:int8类型修改数组的数据类型
修改浮点型的小数位数
查看数组的形状
设置数组的形状:
数组中数据的个数
将数组改变后才能一维的数组
数组和一个数字做加、减、乘、除(+,-,*,/)
In [1]: import numpy as np
In [2]: t1 = np.array(range(24)).reshape((4,6))
In [3]: t1
Out[3]:
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 [4]: t1+2
Out[4]:
array([[ 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13],
[14, 15, 16, 17, 18, 19],
[20, 21, 22, 23, 24, 25]])
In [5]: t1/0
E:\Anaconda3\envs\django\Scripts\ipython:1: RuntimeWarning: divide by zero encountered in true_divide
E:\Anaconda3\envs\django\Scripts\ipython:1: RuntimeWarning: invalid value encountered in true_divide
Out[5]:
array([[nan, inf, inf, inf, inf, inf],
[inf, inf, inf, inf, inf, inf],
[inf, inf, inf, inf, inf, inf],
[inf, inf, inf, inf, inf, inf]])
In [6]:
数组和数组计算
In [6]: t2 = np.arange(100,124).reshape((4,6))
In [7]: t2
Out[7]:
array([[100, 101, 102, 103, 104, 105],
[106, 107, 108, 109, 110, 111],
[112, 113, 114, 115, 116, 117],
[118, 119, 120, 121, 122, 123]])
In [8]: t1
Out[8]:
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]: t1+t2
Out[9]:
array([[100, 102, 104, 106, 108, 110],
[112, 114, 116, 118, 120, 122],
[124, 126, 128, 130, 132, 134],
[136, 138, 140, 142, 144, 146]])
In [10]: t1*t2
Out[10]:
array([[ 0, 101, 204, 309, 416, 525],
[ 636, 749, 864, 981, 1100, 1221],
[1344, 1469, 1596, 1725, 1856, 1989],
[2124, 2261, 2400, 2541, 2684, 2829]])
In [11]: t1/t2
Out[11]:
array([[0. , 0.00990099, 0.01960784, 0.02912621, 0.03846154,
0.04761905],
[0.05660377, 0.06542056, 0.07407407, 0.08256881, 0.09090909,
0.0990991 ],
[0.10714286, 0.11504425, 0.12280702, 0.13043478, 0.13793103,
0.14529915],
[0.15254237, 0.15966387, 0.16666667, 0.17355372, 0.18032787,
0.18699187]])
In [12]: t3 = np.arange(0,6)
In [13]: t1-t3
Out[13]:
array([[ 0, 0, 0, 0, 0, 0],
[ 6, 6, 6, 6, 6, 6],
[12, 12, 12, 12, 12, 12],
[18, 18, 18, 18, 18, 18]])
In [14]: t3
Out[14]: array([0, 1, 2, 3, 4, 5])
In [15]: t4 = np.arange(4).reshape((4,1))
In [16]: t1-t4
Out[16]:
array([[ 0, 1, 2, 3, 4, 5],
[ 5, 6, 7, 8, 9, 10],
[10, 11, 12, 13, 14, 15],
[15, 16, 17, 18, 19, 20]])
In [17]: t5 = np.arange(9)
In [18]: t5
Out[18]: array([0, 1, 2, 3, 4, 5, 6, 7, 8])
In [19]: t1-t5
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
----> 1 t1-t5
ValueError: operands could not be broadcast together with shapes (4,6) (9,)
In [20]:
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprow=0,usecols=None,unpack=False)
In [3]: t2 = np.arange(24).reshape((4,6))
In [4]: t2
Out[4]:
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 [5]: t2.transpose()
Out[5]:
array([[ 0, 6, 12, 18],
[ 1, 7, 13, 19],
[ 2, 8, 14, 20],
[ 3, 9, 15, 21],
[ 4, 10, 16, 22],
[ 5, 11, 17, 23]])
In [6]: t2.T
Out[6]:
array([[ 0, 6, 12, 18],
[ 1, 7, 13, 19],
[ 2, 8, 14, 20],
[ 3, 9, 15, 21],
[ 4, 10, 16, 22],
[ 5, 11, 17, 23]])
In [9]: t2.swapaxes(1,0)
Out[9]:
array([[ 0, 6, 12, 18],
[ 1, 7, 13, 19],
[ 2, 8, 14, 20],
[ 3, 9, 15, 21],
[ 4, 10, 16, 22],
[ 5, 11, 17, 23]])
In [10]:
t2[2]
t2[2:]
t2[[2,8,10]]
t2[行,列]
t2[:,0]
t2[:,2:]
t2[:,[0,2]]
t2[2,3]
t2[2:5,1:4]
t2[[0,2],[0,1]]
t2[:,2:4]
= 0
In [10]: t2
Out[10]:
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 [11]: t2<10
Out[11]:
array([[ True, True, True, True, True, True],
[ True, True, True, True, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False]])
In [13]: t2[t2<10] = 3
In [14]: t2
Out[14]:
array([[ 3, 3, 3, 3, 3, 3],
[ 3, 3, 3, 3, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
In [27]: t2.astype(float)
Out[27]:
array([[ 3., 3., 3., 3., 3., 3.],
[ 3., 3., 3., 3., 10., 11.],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., 21., 22., 23.]])
In [28]: t2[t2>20] = np.nan
In [29]: t2
Out[29]:
array([[ 3., 3., 3., 3., 3., 3.],
[ 3., 3., 3., 3., 10., 11.],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., nan, nan, nan]])
np.nan == np.nan Out[17]: False
In [34]: t2!=t2
Out[34]:
array([[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, True, True, True]])
In [36]: np.isnan(t2)
Out[36]:
array([[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, False, False, False],
[False, False, False, True, True, True]])
-inf
:负无穷In [29]: t2
Out[29]:
array([[ 3., 3., 3., 3., 3., 3.],
[ 3., 3., 3., 3., 10., 11.],
[12., 13., 14., 15., 16., 17.],
[18., 19., 20., nan, nan, nan]])
In [30]: np.count_nonzero(t2)
Out[30]: 24
In [31]: t2[:,0] = 0
In [32]: np.count_nonzero(t2)
Out[32]: 20
In [35]: np.count_nonzero(t2!=t2)
Out[35]: 3
In [37]: np.count_nonzero(np.isnan(t2))
Out[37]: 3