1. np.array() 和 np.asarray() 的定义

np.array() 和 np.asarray() 都是 NumPy 库中用于创建数组的函数。

np.array() 函数将输入数组转换为 ndarray 对象,如果没有指定 dtype 参数,则会根据输入数据的类型自动推断出合适的数据类型。

np.asarray() 函数将输入数据转换为 ndarray 对象,如果输入数据已经是 ndarray 类型,则会返回相同的对象,否则会创建一个新的 ndarray 对象。

2. 参数使用

np.array() 函数有两个常用的参数:

  • object:输入的数组形式的数据,可以是列表、元组等。
  • dtype:指定输出数组的数据类型,默认为 None,即会自动根据输入数据类型推断出合适的数据类型。

示例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3], dtype=float)

print(arr1)  # [1 2 3]
print(arr2)  # [1. 2. 3.]
Python

np.asarray() 函数只有一个常用的参数:

  • a:输入的数组形式的数据。

示例:

import numpy as np

arr1 = [1, 2, 3]
arr2 = (1, 2, 3)

arr3 = np.asarray(arr1)
arr4 = np.asarray(arr2)

print(arr3)  # [1 2 3]
print(arr4)  # [1 2 3]
Python

3. 返回值类型

np.array() 函数返回一个 ndarray 对象,即 NumPy 数组,该对象具有数组相关的属性和方法。

示例:

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([(1, 2, 3), (4, 5, 6)])

print(type(arr1))  # <class 'numpy.ndarray'>
print(type(arr2))  # <class 'numpy.ndarray'>
Python

np.asarray() 函数返回一个 ndarray 对象,即 NumPy 数组,该对象具有数组相关的属性和方法。

示例:

import numpy as np

arr1 = [1, 2, 3]
arr2 = (1, 2, 3)

arr3 = np.asarray(arr1)
arr4 = np.asarray(arr2)

print(type(arr3))  # <class 'numpy.ndarray'>
print(type(arr4))  # <class 'numpy.ndarray'>
Python

总结:

np.array() 和 np.asarray() 都可以将输入的数据转换为 NumPy 数组。两者的参数使用上略有不同,np.array() 函数可以指定数据类型,而 np.asarray() 函数只需传入数据即可。

然而,np.array() 函数在输入数据是 ndarray 类型时,会创建一个新的 ndarray 对象;而 np.asarray() 函数则会直接返回输入数据的 ndarray 对象,不会创建新对象。

因此,可根据具体需求选择使用 np.array() 函数还是 np.asarray() 函数。如果需要创建新的对象,或者不确定输入数据类型是否是 ndarray,可以使用 np.array() 函数;如果已经确定输入数据类型是 ndarray,且希望返回相同的对象,则可使用 np.asarray() 函数。