np.asarray与np.array

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)

posted @ 2025-08-26 15:42  数理生风  阅读(172)  评论(0)    收藏  举报