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.]

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]

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'>

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'>

总结:

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()函数。