Python中array()与asarray()用法及区别

本文代码均在Python环境下运行。

import numpy as np

官网文档
numpy.array();numpy.asarray()

array()

用法

numpy.array(object, dtype=None, *, copy=True, order=‘K’, subok=False, ndmin=0, like=None)

功能

创建一个数组

参数Parameter

  • object : array_like
    输入数据,可以转换为数组的任何形式。这包括列表,元组列表,元组,元组元组,列表元组和ndarray。
  • dtype : data-type, optional
    默认情况下,从输入数据中推断出数据类型。
  • copy : bool, optional
    如果为true(默认值),则复制对象。否则,只有当__array__返回一个副本,obj是一个嵌套序列,或者需要复制以满足任何其他要求(dtype, order等)时,才会进行复制。
  • order : {‘K’, ‘A’, ‘C’, ‘F’}, optional
    是使用行优先(C-style)还是列主要(Fortran-style)内存表示形式。默认为“ C”。
  • subok : bool, optional
    If True, then sub-classes will be passed-through, otherwise the returned array will be forced to be a base-class array (default).
  • ndmin : int, optional
    指定结果数组应具有的最小维数。将根据需要在形状上添加一个以满足此要求。
  • like : array_like, optional
    Reference object to allow the creation of arrays which are not NumPy arrays. If an array-like passed in as like supports the array_function protocol, the result will be defined by it. In this case, it ensures the creation of an array object compatible with that passed in via this argument.
  • out : ndarray
    满足指定要求的数组对象。如果输入已经是具有匹配dtype和顺序的ndarray,则不执行复制。如果arr是ndarray的子​​类,则返回基类ndarray。

示例Examples

>>> np.array([1, 2, 3])
array([1, 2, 3])

>>> np.array([[1, 2], [3, 4]]) #More than one dimension
array([[1, 2],
       [3, 4]])

>>> np.array([1, 2, 3], ndmin=2) #Minimum dimensions 2
array([[1, 2, 3]])

>>> np.array([1, 2, 3], dtype=complex) #Type provided
array([ 1.+0.j,  2.+0.j,  3.+0.j])

asarray()

用法

numpy.asarray(a, dtype=None, order=None, *, like=None)

功能

将输入转换为数组。

参数Parameter

  • a : array_like
    输入数据,可以转换为数组的任何形式。这包括列表,元组列表,元组,元组元组,列表元组和ndarray。
  • dtype : data-type, optional
    默认情况下,从输入数据中推断出数据类型。
  • order : {‘C’, ‘F’, ‘A’, ‘K’}, optional
    是使用行优先(C-style)还是列主要(Fortran-style)内存表示形式。默认为“ C”。
  • like : array_like, optional
    确保创建的数组对象与通过该参数传入的数组对象兼容。

示例Examples

将列表转换为数组:

>>> a = [1, 2]
>>> np.asarray(a)
array([1, 2])

已存在的array没有被复制。

>>> a = np.array([1, 2])
>>> np.asarray(a) is a
True

如果设置了dtype,只在dtype不匹配的情况下复制数组:

>>> a = np.array([1, 2], dtype=np.float32)
>>> np.asarray(a, dtype=np.float32) is a
True
>>> np.asarray(a, dtype=np.float64) is a
False

array()与asarray()的区别

np.asarray()np.array() 都可以用来创建 NumPy 数组。

两者之间的主要区别在于,如果输入已经是 NumPy 数组,np.asarray() 将不会创建一个新数组,而 np.array() 即使输入已经是 NumPy 数组也会创建一个新数组。因此,当你想要确保给定的输入是 NumPy 数组时,可以使用 np.asarray()。可以避免不必要的内存分配和复制。

另一方面,当你想从给定的输入创建一个新的 NumPy 数组时,可以使用 np.array(),而不管它是否已经是一个NumPy数组。

你可能感兴趣的:(python,numpy,开发语言)