(1)计算e的多少次方,以及一个数的开平方
B = np.arange(3)
print(np.exp(B)) #结果为[1. 2.71828183 7.3890561 ]
print(np.sqrt(B)) #结果为[0. 1. 1.41421356]
(2)把矩阵拉平与挤压
a = np.floor(10*np.random.random((3,4))) #先生成三行四列的数0到1之间的数,然后再扩大十倍向下取整。
结果为:
array([[1., 6., 4., 1.],
[1., 9., 3., 7.],
[5., 4., 6., 3.]])
拉平:
print(a.ravel())
结果为:[1. 6. 4. 1. 1. 9. 3. 7. 5. 4. 6. 3.]
挤压:
a = a.ravel()
a.shape = (6,2)
结果为:
[[1. 6.]
[4. 1.]
[1. 9.]
[3. 7.]
[5. 4.]
[6. 3.]]
(3)转制
print(a.T)
(4)用-1代替多少行多少列,让电脑自己判断
如:
print(a.reshape(3, -1))
[[1. 6. 4. 1.]
[1. 9. 3. 7.]
[5. 4. 6. 3.]] #写完三行电脑就知道3乘4等于12,自动填充4列
(5)拼接矩阵
a = np.floor(10*np.random.random((2,2)))
b = np.floor(10*np.random.random((2,2)))
按行拼接:print(np.hstack(a,b))
结果为:
[[4. 9. 9. 2.]
[4. 0. 0. 3.]]
按列拼接:print(np.vstack(a,b))
结果为;
[[4. 9.]
[4. 0.]
[9. 2.]
[0. 3.]]
(6)分割矩阵
a = np.floor(10*np.random.random((2, 12)))
对矩阵按行切割为均等长度的三段:print(np.hsplit(a, 3))
结果为:[array([[8., 2., 9., 7.],
[6., 9., 1., 9.]]),
array([[9., 4., 2., 8.],
[6., 5., 9., 8.]]),
array([[0., 4., 2., 1.],
[7., 1., 4., 7.]])]
对矩阵按行切割,指定切割位置,切割成长度不等的几段:print(np.hsplit(a, (3,4)))
结果为:
[array([[8., 2., 9.],
[6., 9., 1.]]),
array([[7.],
[9.]]),
array([[9., 4., 2., 8., 0., 4., 2., 1.],
[6., 5., 9., 8., 7., 1., 4., 7.]])]
按列分割也是同理:
print(np.vsplit(a,2))
结果为:
[array([[8., 2., 9., 7., 9., 4., 2., 8., 0., 4., 2., 1.]]), array([[6., 9., 1., 9., 6., 5., 9., 8., 7., 1., 4., 7.]])]