欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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.……
numpy常用方法使用
如:

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时每行相加,得到类似于每一列分别相加求和的效果
另外还有:
numpy常用方法使用

本文地址:https://blog.csdn.net/zhangqiqiyihao/article/details/109025640

相关标签: numpy python