从 Python 序列创建数组
创建 NumPy 数组最基本的方法是转换 Python 序列,例如列表或元组。numpy.array() 函数接收一个序列作为参数,并返回一个新的 NumPy 数组。
理解 NumPy 数组
在创建数组之前,让我们先了解 NumPy 数组的特别之处:
数组维度
- 一维数组 (向量):一个简单的数字列表,例如
[1, 2, 3, 4]
- 二维数组 (矩阵):一个包含行和列的数字表格,类似于电子表格
- 三维数组 (张量):一个数字立方体,适用于图像或三维数据
与 Python 列表的关键区别
- 同质性 (Homogeneous):所有元素必须是相同的数据类型(通常是数字)
- 固定大小 (Fixed size):创建后,大小无法更改
- 高效性 (Efficient):数学运算速度更快
- 丰富的功能 (Rich functionality):支持向量化操作(一次性对整个数组进行操作)
导入 NumPy
在 Python 中,我们使用标准的别名 np 来导入 NumPy:
import numpy as np
这个 np 别名是科学计算 Python 社区广泛采用的约定。
现在让我们创建一些数组。从左侧文件浏览器中打开 array_from_sequence.py 文件。将以下代码添加到其中。此代码将导入 NumPy 库,并从 Python 列表创建一维 (1D)、二维 (2D) 和三维 (3D) 数组。
import numpy as np
## 从列表创建一维数组
a1D = np.array([1, 2, 3, 4])
print("1D Array:")
print(a1D)
## 从列表的列表创建二维数组
a2D = np.array([[1, 2], [3, 4]])
print("\n2D Array:")
print(a2D)
## 从嵌套列表创建三维数组
a3D = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print("\n3D Array:")
print(a3D)
建议: 你可以将上面的代码复制到你的代码编辑器中,然后仔细阅读每一行代码以理解其功能。如果你需要进一步的解释,可以点击“解释代码”按钮 👆。你可以与 Labby 互动以获得个性化帮助。
添加代码后,保存文件。现在,从终端运行脚本以查看输出。
python array_from_sequence.py
你应该会看到以下输出,它显示了你创建的数组:
1D Array:
[1 2 3 4]
2D Array:
[[1 2]
[3 4]]
3D Array:
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
理解数据类型 (dtype)
NumPy 数组的所有元素都具有固定的数据类型,该类型由 dtype 参数指定。这与 Python 列表不同,Python 列表中的每个元素可以具有不同的类型。
数据类型的重要性
- 内存效率: 不同类型使用不同量的内存
- 性能: 操作针对特定数据类型进行了优化
- 精度: 控制数字的存储和计算方式
常见数据类型
int32 / int64: 整数(32 位或 64 位)
float32 / float64: 小数(32 位或 64 位)
complex: 复数
bool: True/False 值
你可以在创建数组时使用 dtype 参数指定数据类型,例如 np.array([1, 2], dtype=complex)。如果你不指定 dtype,NumPy 将根据输入数据自动选择一个合适的数据类型。