本文实例讲述了Python Numpy库常见用法。分享给大家供大家参考,具体如下:
1,简介
Numpy是一个常用的Python科学技术库,通过它可以快速对数组进行操作,包括形状操作,排的序,选择,输入输出,离散傅立叶变换,基本线性代数,基本统计运算和随机模拟等。许多Python库和科学计算的软件包都使用Numpy数组作为操作对象,或者将传入的Python数组转化为Numpy数组,因此在Python中操作数据离不开Numpy。
Numpy的核心是ndarray对象,由Python的n维数组封装而来,但通过C语言预编译相关的数组操作,因此比原生Python具有更高的执行效率,但仍然使用Python语言编码,这样就同时具有简洁的代码和高效的运行速度.ndarry与数组有些区别值得注意,Numpy数组中的元素都具有相同的类型,并且在创建时就确定了固定的大小,这与Python数组对象可以动态增长不同。
2,数组对象
2.1,属性
Numpy对象的形式是同构多维数组,数组的维度称为轴(轴),每个维度上元素的个数称为轴的长度,例如下面是一个2×3的二维数的arr组,第一轴长度为3,第二轴长度为2
arr=[[1。,0。, 0), [0。1。2。]]
arr数组对象常用的属性如下:
#数组轴的个数 arr.ndim #数组维度及长度,例如2×3的数组其形状为(2、3) arr.shape #数组元素的总个数 arr.size #数组中元素的数据类型 arr.dtype #数组中元素所占字节数 arr.itemsize
2.2,创建数组
可以通过数组()方法包裹普通python数组将其转化为numpy数组,通过dtype=规定元素的数据类型。数组可以是二维等高维数组,也可以是元组的形式。
如果需要填充已知大小的数组可以使用函数0(),将元素都填充为0,或者的()将元素填充为1,空()将元素填充为随机数
不等(a, b, c)函数用于从a到b每隔c长度生成一个数组元素.linspace (a, b, c)函数用于在a到b之间生成c个数组元素
#普通数组转化为numpy数组 a1=np。阵列(2、3、4,dtype=浮动) 打印(a1) #将元组数组转化为二维numpy数组 a2=np。数组([(1、2、3),(3、4、5))) 打印(a2) #将3×3的数组用1填充 a3=np。((3)) 打印(a3) #从1到10,每隔2生成一个元素 a4=np。(1,2)不等 打印(a4) 在1到12号之间生成4个元素 a5=np。linspace (1、12、4、dtype=int) 打印(a5) ''' 普通数组转化为numpy对象: (2。3.4。) 元组数组: [(1 2 3) [3 4 5]] 用1填充数组: [[1。1. 1。) (1。1. 1。) (1。1. 1。] 从1到10每隔2生成一个元素: (1 3 5 7 9) 在1到12之间生成4个元素: [1 4 8 12] " >之前2.3,数组操作
算术运算符可以直接运用在矩阵上,其结果是将运算应用到每个元素上,例如矩阵A * B就是每个元素对应相乘,矩阵的乘法运算使用的是@符号
一个=np。数组([[1], [0,1]]) B=np。数组([(2,0), [3,4]]) 打印(A * B) 打印(@ B) ''' 矩阵元素对应相乘: [[2 0] [0 4]] 矩阵的乘法: [[4]5 [3 - 4]] " >之前numpy中有些函数应用于整个数组,例如求和和,最大值最大,最小值最小。如果在这些参数中指定了某个轴,则应用于指定轴。
还有一些函数应用于数组中的具体元素,例如求罪,因为,经验,开方√6等,这些函数叫做通函数(ufunc)
一个=np。阵列([[0,1,2,3]。 (4、5、6、7) (8、9、10、11)]) print (a.max()) #求整体的最大值,结果为11 print (a.sum(轴=0))#求每一列的和,结果为:[12 15 18 21] print (np.sqrt (a)) #数组每个元素求开方numpy中的数组同python中列表的一样可以进行索引,切片和迭代操作。数组一个[x]代表访问数组一个下标为x的元素,一维数组(x, y)一代表访问数组从x到y的元素,如果省略x代表从头开始,省略y代表直到结尾。[x, y:]代表从x到y每隔一个元素取一个值,如果一个为负数,代表逆序取值。
一个=np。数组([0,1,2,3,4,5,6,7,8,9)) 打印([1:3])#输出下标为1到3的元素:(1 2) 打印([::2])#逆序每隔两个元素选一个值:[9 7 5 3 1]Python Numpy库常见用法入门教程