上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.2 NumPy速成
NumPy为SciPy提供了基本的数据结构和运算,其中最主要的是ndarrays多维数组,它提供了高效的矢量运算功能。
4.2.1 创建数组
利用NumPy创建多维数组非常简单,通过给array函数传递Python的序列对象创建数组,如果传递的是多层嵌套的序列,将创建多维数组。代码如下:
import numpy as np # 创建数组 myarray=np.array([1, 2, 3]) print(myarray) print(myarray.shape) #创建多维数组 myarray=np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) print(myarray) print(myarray.shape)
执行结果如下:
[1 2 3] (3,) [[1 2 3] [2 3 4] [3 4 5]] (3, 3)
4.2.2 访问数据
对于ndarray数组的访问,我们可以通过数组的下标访问某一行,也可以访问某一列。代码如下:
import numpy as np # 创建多维数组 myarray=np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) print(myarray) print(myarray.shape) # 访问数据 print('这是第一行:%s' % myarray[0]) print('这是最后一行:%s' % myarray[-1]) print('访问整列(3列)数据:%s' % myarray[:, 2]) print('访问指定行(2行)和列(3列)的数据:%s' % myarray[1, 2])
执行结果如下:
[[1 2 3] [2 3 4] [3 4 5]] (3, 3) 这是第一行:[1 2 3] 这是最后一行:[3 4 5] 访问整列(3列)数据:[3 4 5] 访问指定行(2行)和列(3列)的数据:4
4.2.3 算数运算
使用NumPy的ndarray数组可以直接进行算术运算,或者说向量运算。代码如下:
import numpy as np # 创建多维数组 myarray1=np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) myarray2=np.array([[11, 21, 31], [21, 31, 41], [31, 41, 51]]) print('向量加法运算:') print(myarray1+myarray2) print('向量乘法运算:') print(myarray1 * myarray2)
执行结果如下:
向量加法运算: [[12 23 34] [23 34 45] [34 45 56]] 向量乘法运算: [[ 11 42 93] [ 42 93 164] [ 93 164 255]]
NumPy主要用来处理大量数字的应用,通过这三个例子,熟悉了NumPy的多维数组的定义、访问和向量运算。