Python Numpy库常见用法入门教程
本文实例讲述了PythonNumpy库常见用法。分享给大家供大家参考,具体如下:
1、简介
2、数组对象
2.1、属性
arr=[[1.,0.,0.], [0.,1.,2.]]
#数组轴的个数 arr.ndim #数组维度及长度,例如2×3的数组其shape为(2,3) arr.shape #数组元素的总个数 arr.size #数组中元素的数据类型 arr.dtype #数组中元素所占字节数 arr.itemsize
2.2、创建数组
#普通数组转化为numpy数组 a1=np.array([2,3,4],dtype=float) print(a1) #将元组数组转化为二维numpy数组 a2=np.array([(1,2,3),(3,4,5)]) print(a2) #将3×3的数组用1填充 a3=np.ones((3,3)) print(a3) #从1到10,每隔2生成一个元素 a4=np.arange(1,10,2) print(a4) #在1到12之间生成4个元素 a5=np.linspace(1,12,4,dtype=int) print(a5) ''' 普通数组转化为numpy对象: [2.3.4.] 元组数组: [[123] [345]] 用1填充数组: [[1.1.1.] [1.1.1.] [1.1.1.]] 从1到10每隔2生成一个元素: [13579] 在1到12之间生成4个元素: [14812] '''
2.3、数组操作
A=np.array([[1,1], [0,1]]) B=np.array([[2,0], [3,4]]) print(A*B) print(A@B) ''' 矩阵元素对应相乘: [[20] [04]] 矩阵的乘法: [[54] [34]] '''
a=np.array([[0,1,2,3], [4,5,6,7], [8,9,10,11]]) print(a.max())#求整体的最大值,结果为11 print(a.sum(axis=0))#求每一列的和,结果为:[12151821] print(np.sqrt(a))#数组每个元素求开方
a=np.array([0,1,2,3,4,5,6,7,8,9]) print(a[1:3])#输出下标为1到3的元素:[12] print(a[::-2])#逆序每隔两个元素选一个值:[97531]
a=np.array([[0,1,2,3], [10,11,12,13], [40,41,42,43]]) #输出a第一维(行)的前三个,第二维(列)下标的1~3 print(a[1:3,0:3]) #输出行的所有,下标为2的列 print(a[2,...]) #遍历数组 forrowina: print(row) #遍历每个子元素 foritemina.flat: print(item) ''' 后两行的1~3列: [[101112] [404142]] 第三行的所有列: [40414243] 遍历数组: [0123] [10111213] [40414243] 遍历每个元素: 0 1 2 ...... 41 42 43 '''
a=np.arange(12)**2 print(a) i=np.array([1,3,5]) print(a[i]) #多维数组索引j j=np.array([[3,4],[9,7]]) print(a[j]) ''' [0149162536496481100121] 数组a的1、3、5个元素 [1925] 通过多为索引j取出a的数据填到对应位置 [[916] [8149]] '''
a=np.array(([[0,1,2,3], [4,5,6,7], [8,9,10,11]])) #多维数组的单元素索引 i=np.array([0,1]) print(a[i]) #对多维数组提供多维度索引,同时提供i,j代表取出a的[0,2]、[1,3]两个元素 j=np.array([2,3]) print(a[i,j]) ''' 选择多维数组a的第0、1两行: [[0123] [4567]] a的[0,2]、[1,3]两个元素: [27] '''
2.4、改变维度
a=np.array([[1,2,3,4,5,6], [7,8,9,10,11,12]]) b=a.reshape(3,4) print(b) #多维数组,自动计算 print(a.reshape(-1,3,2)) #展开数组 flatted=b.ravel() print(flatted,end='') ''' [[1234] [5678] [9101112]] 2×3×2的多维数组: [[[12] [34] [56]] [[78] [910] [1112]]] 展开数组: [123456789101112] '''
a=np.array([1,2,3]) b=np.array([4,5,6]) #垂直方向合并 c=np.vstack((a,b)) print(c) #水平方向合并 print(np.hstack((a,b))) #水平方向拆分 print(np.hsplit(c,3)) ''' 垂直堆叠 [[123] [456]] 水平合并 [123456] 水平拆分为三个1×2的: [array([[1], [4]]), array([[2], [5]]), array([[3], [6]])] '''
2.5、数组的复制
a=np.array([1,2,3]) b=a #修改b b[0]=0 print(a) #输出a、b对象的id print(id(a),id(b)) ''' 修改b,a也发生了变化 [023] 查看二者的id 22900138126562290013812656 '''
c=a[:] #修改视图的形状 c.shape=3,1 print(c,a) #修改视图c的数据 c[0]=1 print(a[0]) ''' 对视图c的形状做修改,a不会受到影响 [[0] [2] [3]][023] 修改c的数据,a也会随之改变: 1
d=a.copy() d[0]=5 #修改数组的副本d,a不受影响,输出a:[123] print(a)
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。