NumPy Ndarray 对象学习笔记

什么是 Ndarray 对象?

NumPy 的最重要的一个特点是其 N 维数组对象 ndarray,它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。 ndarray 对象是用于存放同类型元素的多维数组。它是一个由元素及其下标组成的元组序列,同时包含有表示数组维度的 shape 属性和表示元素类型的 dtype 属性。

创建 Ndarray 数组

可以使用 NumPy 库提供的 numpy.array() 函数来创建 Ndarray 数组。

pythonCopy Code
import numpy as np a = np.array([1, 2, 3]) # 一维数组 print(a) # 输出:[1 2 3] b = np.array([[1, 2], [3, 4]]) # 二维数组 print(b) # 输出: # [[1 2] # [3 4]] c = np.array([1, 2, 3], ndmin=2) # 最小维度为2 print(c) # 输出: # [[1 2 3]]

Ndarray 数组属性

获取 Ndarray 数组的属性可以使用 ndarray.shape 获取数组的维度信息、ndarray.size 获取数组元素总个数、ndarray.itemsize 获取数组中每个元素的字节大小、ndarray.ndim 获取数组的维度个数等。

pythonCopy Code
import numpy as np a = np.array([[1, 2], [3, 4], [5, 6]]) # 二维数组 print(a.shape) # 输出:(3, 2) print(a.size) # 输出:6 print(a.itemsize) # 输出:8 print(a.ndim) # 输出:2

Ndarray 数组操作

可以使用 Ndarray 数组的标准运算符或者 NumPy 库中的函数进行 Ndarray 数组的操作。

数组运算

可以使用标准运算符对 Ndarray 数组进行加、减、乘、除等数学运算。

pythonCopy Code
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = a + b print(c) # 输出:[5 7 9] d = a - b print(d) # 输出:[-3 -3 -3] e = a * b print(e) # 输出:[ 4 10 18] f = a / b print(f) # 输出:[0.25 0.4 0.5 ]

数组切片和索引

可以使用切片和索引获取 Ndarray 数组中的元素。

pythonCopy Code
import numpy as np a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(a[0]) # 获取第一行 # 输出:[1 2 3] print(a[:2]) # 获取前两行 # 输出: # [[1 2 3] # [4 5 6]] print(a[:,2]) # 获取第三列 # 输出:[3 6 9] print(a[1,1]) # 获取第二行第二列 # 输出:5

数组形状操作

可以使用 NumPy 库提供的函数对 Ndarray 数组的形状进行操作。

pythonCopy Code
import numpy as np a = np.array([[1, 2], [3, 4], [5, 6]]) b = a.reshape(2, 3) # 改变数组形状为 2x3 print(b) # 输出: # [[1 2 3] # [4 5 6]] c = a.flatten() # 将数组展开为一维数组 print(c) # 输出:[1 2 3 4 5 6] d = np.transpose(a) # 将数组进行转置 print(d) # 输出: # [[1 3 5] # [2 4 6]]

实例

假设现在有如下两个 Ndarray 数组:

pythonCopy Code
import numpy as np a = np.array([1, 2, 3]) b = np.array([[1, 2], [3, 4], [5, 6]])

要求将 a 数组乘以 b 数组的第二列,生成一个新的一维数组。

pythonCopy Code
import numpy as np a = np.array([1, 2, 3]) b = np.array([[1, 2], [3, 4], [5, 6]]) c = a * b[:, 1] print(c) # 输出:[ 2 8 18]

以上就是 NumPy Ndarray 对象的学习笔记。