numpy
参考文档:简书
np.random.rand(3,4)#产生一个3行4列的矩阵(0-1之间的)
ndarray
ndarray的创建
In [32]: data1=[1,2,3,4.0]
In [34]: arr1 = np.array(data1)
In [35]: arr1
Out[35]: array([ 1., 2., 3., 4.])
In [37]: data2=[(1,23,3.),(2,3,5)]
In [38]: arr2=np.array(data2)
In [39]: arr2
Out[39]:
array([[ 1., 23., 3.],
[ 2., 3., 5.]])
ndarry相关属性查看:
arr1.ndim
arr1.shape
arr1.dtype
zeros
In [40]: np.zeros(10)
Out[40]: array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
In [42]: np.zeros((3,3))
Out[42]:
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
ones,eye,empty
arange
In [43]: np.arange(15)
Out[43]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
astype
In [44]: arr=np.ones((3,3))
In [45]: arr
Out[45]:
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
In [47]: arr.astype(np.int64)
Out[47]:
array([[1, 1, 1],
[1, 1, 1],
[1, 1, 1]], dtype=int64)
数组间的算术运算
In [50]: arr=np.array([[1,2,3],[4,5,6]])
In [51]: arr
Out[51]:
array([[1, 2, 3],
[4, 5, 6]])
In [52]: arr*arr
Out[52]:
array([[ 1, 4, 9],
[16, 25, 36]])
In [53]: arr-arr
Out[53]:
array([[0, 0, 0],
[0, 0, 0]])
In [54]: arr**0.5
Out[54]:
array([[ 1. , 1.41421356, 1.73205081],
[ 2. , 2.23606798, 2.44948974]])
In [55]: arr/2.
Out[55]:
array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ]])
np.where
In [2]: xarr=np.array([1.1,1.2,1.3,1.4,1.5])
In [3]: yarr=np.array([2.1,2.2,2.3,2.4,2.5])
In [6]: cond = np.array([True,False,True,True,False])
In [7]: result = np.where(cond,xarr,yarr)#相当于c语言的三目运算(条件?表达式1;表达式2)
In [8]: result
Out[8]: array([ 1.1, 2.2, 1.3, 1.4, 2.5])
将正值换为2负值换为-2
In [9]: arr = np.random.randn(4,4)
In [10]: arr
Out[10]:
array([[-0.04664521, 0.88642482, 1.2859935 , -1.41718901],
[-0.7753382 , 0.68117095, 1.41066347, 0.22943825],
[-0.87982581, -0.28701962, -0.71245947, 1.49186814],
[-1.85635383, -1.87134631, -0.41743389, 0.78895452]])
In [11]: np.where(arr>0,2,-2)
(np.where(arr>0,2,arr)#只将大于0的换成2)
Out[11]:
array([[-2, 2, 2, -2],
[-2, 2, 2, 2],
[-2, -2, -2, 2],
[-2, -2, -2, 2]])