np.array
np.array
是 NumPy 中最基础、最核心的函数之一,用于创建一个 NumPy 数组(ndarray)。下面我们详细讲解它的用法、参数、示例以及常见注意事项。
一、基本语法
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
参数说明:
参数 | 说明 |
---|---|
object | 输入数据,可以是列表、元组、其他数组、生成器等。 |
dtype | 可选,指定数组的数据类型(如 int32, float64 等)。默认自动推断。 |
copy | 默认为 True,表示是否复制输入数据。False 时尽可能避免复制。 |
order | 可选,指定内存布局顺序:'C'(行优先)、'F'(列优先)、'K'(保留原顺序)。 |
subok | 默认为 False,是否允许返回子类。 |
ndmin | 指定数组的最小维度。 |
二、使用示例
示例 1:从列表创建一维数组
import numpy as np
a = np.array([1, 2, 3, 4])
print(a)
输出:
[1 2 3 4]
示例 2:从嵌套列表创建二维数组
b = np.array([[1, 2], [3, 4]])
print(b)
输出:
[[1 2]
[3 4]]
示例 3:指定数据类型
c = np.array([1, 2, 3], dtype=float)
print(c)
输出:
[1. 2. 3.]
示例 4:使用 ndmin 指定最小维度
d = np.array([1, 2, 3], ndmin=3)
print(d)
输出:
[[[1 2 3]]]
三、与 Python 列表的区别
特性 | Python 列表 | NumPy 数组 (ndarray) |
---|---|---|
数据类型 | 可以混合类型 | 必须统一类型 |
性能 | 较慢,逐元素操作 | 快,支持向量化操作 |
内存占用 | 较大 | 较小 |
多维支持 | 需要嵌套 | 原生支持多维数组 |
数学运算支持 | 需要循环或 map | 直接支持 +, -, *, / 等 |
四、常见操作示例
1. 查看数组属性
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("数组的维度:", arr.ndim) # 2
print("数组的形状:", arr.shape) # (2, 3)
print("数组的大小:", arr.size) # 6
print("数组的数据类型:", arr.dtype) # int64
2. 数组切片与索引
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4]) # 输出 [2 3 4]
3. 数组运算
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * 2) # [2 4 6]
五、注意事项
- 数据类型统一:NumPy 数组中所有元素必须是相同类型,否则会自动向上转换(如 int + float → float)。
- 内存效率:
np.array
比 Python 列表更节省内存,尤其适合大数据处理。 - 视图 vs 副本:使用
copy=False
时可能返回视图而非副本,修改可能影响原数组。
六、总结
np.array
是 NumPy 的基础,它可以将 Python 列表、元组等转换为高效的 NumPy 数组,支持多维、向量化运算,是科学计算、数据分析、机器学习等领域不可或缺的工具。