NumPy 数组可以是多维的。其中,二维数组是 NumPy 数组 的一种常见形式,它由行和列组成,类似于矩阵。
NumPy 创建二维数组
NumPy 中有多种创建二维数组的方法,比如可以使用 numpy.array() 函数从 “列表” 或 “元组” 创建二维数组,也可以使用 NumPy 内置函数创建特定的二维数组。
1. 使用 numpy.array() 函数
在 NumPy 中,我们可以使用 numpy.array() 函数从嵌套列表或元组创建二维数组。
示例 1:numpy.array() 创建二维数组
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)运行结果如下。
[[1 2 3]
[4 5 6]]分析:
numpy.array([[1, 2, 3], [4, 5, 6]]) 表示创建了一个 2 行 3 列的二维数组。
2. 使用 NumPy 内置函数
NumPy 提供了一些内置函数,可以用于创建特定的二维数组,比如:
numpy.zeros():创建全 0 的二维数组。numpy.ones():创建全 1 的二维数组。
示例 2:NumPy 创建特殊二维数组
import numpy as np
arr1 = np.zeros((2, 3)) # 创建一个 2×3 的全 0 数组
arr2 = np.ones((3, 4)) # 创建一个 3×4 的全 1 数组
print(arr1)
print(arr2)运行结果如下。
[[0. 0. 0.]
[0. 0. 0.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]分析:
numpy.zeros((2, 3)) 表示创建一个 2 行 3 列的全 0 数组,而 numpy.ones((3, 4)) 表示创建一个 3 行 4 列的全 1 数组。
NumPy 二维数组的属性
NumPy 二维数组有很多属性,常用的如下表所示。
| 属性 | 说明 |
|---|---|
| ndim | 维度的个数,即多少维 |
| shape | 数组的形状,比如 m 行 n 列 |
| size | 元素的个数 |
| dtype | 元素的类型 |
示例 3:二维数组的属性
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print('数组的维度个数为:', arr.ndim)
print('数组的形状为:', arr.shape)
print('数组的元素个数为:', arr.size)
print('数组的元素类型为:', arr.dtype)运行结果如下。
数组的维度个数为:2
数组的形状为:(2, 3)
数组的元素个数为:6
数组的元素类型为:int64分析:
其中,数组 arr 的形状为 (2, 3),表示它是一个 2 行 3 列的二维数组。
NumPy 二维数组的索引和切片
在 NumPy 中,二维数组的索引和切片与 Python 列表的类似,我们可以通过指定行和列的索引来获取数组元素。
提示: 如果小伙伴们对 Python 列表切片了解不够透彻,另请参阅:Python 列表切片。
示例 4:二维数组的索引和切片
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 0]) # 获取第 1 行第 1 列的元素
print(arr[0, :]) # 获取第 1 行的所有元素
print(arr[:, 1]) # 获取第 2 列的所有元素运行结果如下。
1
[1 2 3]
[2 5]分析:
arr[0, 0] 表示获取数组 arr 中第 1 行第 1 列的元素,arr[0, :] 表示获取数组 arr 中第 1 行的所有元素,arr[:, 1] 表示获取数组 arr 中第 2 列的所有元素。
