1.numpy库
NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
使用以下代码,安装numpy,
pip install numpy
1.1.numpy基本操作
我们将使用jupyter notebook进行以下操作。
1.1.1.数组的创建与形态
numpy.array()方法用来创建数组(一维或多维)。例如,
base_array = np.array([1, 2, 3]) # 创建一个一维数组
base_array # 展示数组
# 创建多维数组,一个中括号为一维,我们只需数出最左边有多少个左括号就可以获得维数
base_narray = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) # 创建一个三维数组
base_narray
注意,numpy创建的数组和python中的数组(列表)的数据格式不同。
python_array = [1, 2, 3]
type(python_array[0]) # 数据类型为int
type(base_array[0]) # 数据类型为int64(或int32)
我们可以通过ndim和shape属性查看数组的维数和形态,
base_array.ndim # 结果为1
base_narray.ndim # 结果为3
base_array.shape # 结果为(3,)
base_narray.shape # 结果为(2, 2, 3)
注意,base_narray的结果(2, 2, 3)第一个2为该三维数组有两个二维数组,第二个2意为每个二维数组中有两个一维数组,3意为每个一维数组中有三个元素。
1.1.2.数组的切片
数组的切片是我们之后常会用到的操作,我们首先创建一个三维数组,
base_slice = np.array([[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]], [[11, 12, 13, 14, 15], [16, 17, 18, 19, 20]]])
base_slice
创建好的数组形态如下,
array([[[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10]],
[[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]]])
我们可以使用类似python列表取元素的方法,获取其中的指定下标对应的元素,
base_slice[1] # 取三维数组中下标为1的二维数组
结果为,
array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
base_slice[1][0] # 在下标为1的二维数组中取下标为0的一维数组
结果如下,
array([