np.asarray
是 NumPy 中的一个函数,用于将输入数据(如列表、元组、数组或其他序列类型)转换为 ndarray
(NumPy 数组)。如果输入已经是 ndarray
且数据类型和顺序满足要求,则不会复制数据,效率较高。
✅ 基本语法
numpy.asarray(a, dtype=None, order=None, *, like=None)
📌 参数说明
参数名 | 说明 |
---|---|
a |
输入数据,可以是列表、元组、数组、标量等。 |
dtype |
可选,指定输出的数据类型(如 float , int )。 |
order |
可选,指定数组在内存中的存储顺序:'C' (C风格,行优先)或 'F' (Fortran风格,列优先)。 |
like |
可选,允许传入一个数组对象,返回与其兼容的数组(NumPy 1.20+)。 |
🧪 示例代码
import numpy as np# 列表转数组
a = [1, 2, 3]
arr = np.asarray(a)
print(arr) # [1 2 3]
print(type(arr)) # <class 'numpy.ndarray'># 指定数据类型
arr_float = np.asarray(a, dtype=float)
print(arr_float) # [1. 2. 3.]# 已经是 ndarray 的情况(不会复制)
b = np.array([4, 5, 6])
arr2 = np.asarray(b)
print(arr2 is b) # True,说明是同一个对象# 元组转数组
t = ((1, 2), (3, 4))
arr3 = np.asarray(t)
print(arr3) # [[1 2]# [3 4]]
⚠️ 注意事项
- 与
np.array
不同,np.asarray
不会复制已经存在的 ndarray,除非必要。 - 如果你希望强制复制数据,请使用
np.array(..., copy=True)
。