numpy常用方法使用
程序员文章站
2022-04-18 09:25:46
1.数组的拼接竖直拼接:使用np.vstack(t1,t2)方法水平拼接:使用np.hstack(t1,t2)方法t1Out[3]: array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])t2Out[4]: array([[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]])竖直拼接:np.vstack((t1,t2))Out[6]: arr...
1.数组的拼接
竖直拼接:使用np.vstack(t1,t2)方法
水平拼接:使用np.hstack(t1,t2)方法
t1
Out[3]:
array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]]) t2
Out[4]:
array([[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]])
竖直拼接:
np.vstack((t1,t2)) Out[6]:
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]])
水平拼接:
np.hstack((t1,t2)) Out[7]:
array([[ 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 17], [ 6, 7, 8, 9, 10, 11, 18, 19, 20, 21, 22, 23]])
2.数组的行列交换
1.行交换:交换t的第二行和第三行
t=np.arange(12,24).reshape((3,4)) t
Out[3]:
array([[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]) t[[1,2],:]=t[[2,1],:] t
Out[6]:
array([[12, 13, 14, 15], [20, 21, 22, 23], [16, 17, 18, 19]])
2.列交换,交换第二列和第三列
t[:,[1,2]]=t[:,[2,1]] t
Out[8]:
array([[12, 14, 13, 15], [20, 22, 21, 23], [16, 18, 17, 19]])
3.拼接练习
为t1加入一列属性都赋值为0,t2加入一列属性都赋值为1
再将t1和t2拼接
import numpy as np
t1=np.arange(0,12).reshape((3,4)) t2=np.arange(12,24).reshape((3,4)) print(t1) print(t2) #构造全为0,行数为t1的行数列数为1的数组,构造全为1…… zeros_data=np.zeros((t1.shape[0],1)) ones_data=np.ones((t2.shape[0],1)) #为t1和t2分别添加构造好的数组 t1=np.hstack((t1,zeros_data)) t2=np.hstack((t2,ones_data)) #拼接t1和t2 t=np.vstack((t1,t2)) print(t)
输出结果:
[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]] [[ 0. 1. 2. 3. 0.] [ 4. 5. 6. 7. 0.] [ 8. 9. 10. 11. 0.] [12. 13. 14. 15. 1.] [16. 17. 18. 19. 1.] [20. 21. 22. 23. 1.]]
4.创建全为0和全为1的数组
np.ones((3,3,)) Out[4]:
array([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.]]) np.zeros((2,3)) Out[6]:
array([[0., 0., 0.], [0., 0., 0.]])
5.创建一个对角线为1的正方形数组(方阵):np.eye()
np.eye(5) Out[7]:
array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
6.获取数组最大值和最小值的位置:
np.argmax(t,axis=0/1)
np.argmin(t,axis=0/1)
里面的参数axis=0不是求每一行的最大值的索引,而是求每一列的最大值,axis=0是进行行与行值的比较,直到得出一列中的最大值。同理,axis=1代表着列与列的值进行比较,直到得出一行的最大值
t1
Out[8]:
array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]]) np.argmax(t1,axis=0) Out[9]: array([1, 1, 1, 1, 1, 1], dtype=int64)
7.创建随机数
np.random.……
如:
t2=np.random.randint(4,28,(4,6)) t2
Out[12]:
array([[22, 27, 14, 13, 20, 23], [10, 26, 23, 13, 4, 4], [20, 24, 23, 24, 25, 5], [ 9, 7, 19, 10, 26, 17]])
8.np.sum
用于求数组的和
t3=np.arange(12).reshape((3,4)) print(t3)
输出求和:
np.sum(t3) Out[5]: 66
axis=0/1属性用于设定按照哪个方向或者维度求和
np.sum(t3,axis=0) Out[6]: array([12, 15, 18, 21])
axis=0时每行相加,得到类似于每一列分别相加求和的效果
另外还有:
本文地址:https://blog.csdn.net/zhangqiqiyihao/article/details/109025640
下一篇: 项目中遇到的问题