In [49]: a = np.arange(3)
In [50]: a
Out[50]: array([0,1,2])
In [51]: np.exp(a)
Out[51]: array([1.,2.71828183,7.3890561])
求开平方
In [52]: np.sqrt(a)
Out[52]: array([0.,1.,1.41421356])
向下取整
In [53]: a = np.random.randn(2,3)
In [54]: a
Out[54]:
array([[-0.33540126,0.74271821,-0.19945059],[0.96239612,-1.2588831,-1.36991315]])
In [55]: np.floor(a)
Out[55]:
array([[-1.,0.,-1.],[0.,-2.,-2.]])
矩阵转化为向量
In [56]: np.ravel(a)
Out[56]:
array([-0.33540126,0.74271821,-0.19945059,0.96239612,-1.2588831,-1.36991315])
矩阵转置
In [64]: a
Out[64]:
array([[1,2],[3,4],[5,6]])
In [65]: a.T
Out[65]:
array([[1,3,5],[2,4,6]])
矩阵按列拼接
In [67]: a = np.array([[1,2],[3,4]])
In [68]: a
Out[68]:
array([[1,2],[3,4]])
In [69]: b = np.array([[5,6],[7,8]])
In [70]: b
Out[70]:
array([[5,6],[7,8]])
In [72]: np.vstack((a,b))
Out[72]:
array([[1,2],[3,4],[5,6],[7,8]])
矩阵按行拼接
In [78]: np.hstack((a,b))
Out[78]:
array([[1,2,5,6],[3,4,7,8]])
矩阵按列切分
In [90]: c
Out[90]:
array([[1,2,5,6],[3,4,7,8]])
In [91]: np.vsplit(c,2)
Out[91]:[array([[1,2,5,6]]), array([[3,4,7,8]])]
矩阵按行切分
In [96]: np.hsplit(c,2)
Out[96]:[array([[1,2],[3,4]]),
array([[5,6],[7,8]])]
nump浅拷贝与深拷贝
#浅拷贝
a = b.view()#深拷贝
a = b.copy()
求矩阵按行或列的最大值索引
In [98]: c
Out[98]:
array([[1,2,5,6],[3,4,7,8]])
In [99]: c.argmax(axis=0)
Out[99]: array([1,1,1,1], dtype=int64)
In [100]: c.argmax(axis=1)
Out[100]: array([3,3], dtype=int64)
按行或列成倍数扩大原矩阵
In [102]: a = np.arange(0,40,10)
In [103]: a
Out[103]: array([0,10,20,30])#将矩阵a的行数扩大2倍数,列数扩大3倍
In [106]: np.tile(a,(2,3))
Out[106]:
array([[0,10,20,30,0,10,20,30,0,10,20,30],[0,10,20,30,0,10,20,30,0,10,20,30]])
按行或列对矩阵排序
In [107]: a = np.array([[4,3,5],[1,2,1]])
In [108]: np.sort(a,axis=0)
Out[108]:
array([[1,2,1],[4,3,5]])
In [109]: np.sort(a,axis=1)
Out[109]:
array([[3,4,5],[1,1,2]])
按行或列排序返回排序后的原矩阵索引
In [110]: a
Out[110]:
array([[4,3,5],[1,2,1]])
In [111]: np.argsort(a, axis=0)
Out[111]:
array([[1,1,1],[0,0,0]], dtype=int64)
In [112]: np.argsort(a, axis=1)
Out[112]:
array([[1,0,2],[0,2,1]], dtype=int64)