np.array() 和 np.asarray() 有什么区别?

新手上路,请多包涵

NumPy 的 np.arraynp.asarray 有什么区别?我什么时候应该使用一个而不是另一个?它们似乎产生相同的输出。

原文由 Benjamin Hodgson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 709
2 个回答

由于其他问题被重定向到这个询问 asanyarray其他数组创建例程 的问题,因此可能值得对它们每个的作用做一个简短的总结。

不同之处主要在于何时返回未更改的输入,而不是创建一个新数组作为副本。

array 提供了多种选择(大多数其他函数都是它的薄包装),包括用于确定何时复制的标志。完整的解释与文档一样长(参见 Array Creation ,但简单地说,这里有一些例子:

Assume a is an ndarray , and m is a matrix , and they both have a dtype of float32 :

  • np.array(a)np.array(m) 将复制两者,因为这是默认行为。
  • np.array(a, copy=False) and np.array(m, copy=False) will copy m but not a , because m is not an ndarray
  • np.array(a, copy=False, subok=True) and np.array(m, copy=False, subok=True) will copy neither, because m is a matrix , which is a subclass of ndarray .
  • np.array(a, dtype=int, copy=False, subok=True) 将复制两者,因为 dtype 不兼容。

大多数其他函数都是围绕 array 的薄包装器—控制复制发生的时间:

  • asarray :如果它是兼容的 ndarray ( copy=False ),则输入将以未复制的形式返回。
  • asanyarray : The input will be returned uncopied iff it’s a compatible ndarray or subclass like matrix ( copy=False , subok=True )。
  • ascontiguousarray : The input will be returned uncopied iff it’s a compatible ndarray in contiguous C order ( copy=False , order='C') .
  • asfortranarray : The input will be returned uncopied iff it’s a compatible ndarray in contiguous Fortran order ( copy=False , order='F' ).
  • require :输入将以未复制的形式返回,前提是它与指定的要求字符串兼容。
  • copy :始终复制输入。
  • fromiter :输入被视为可迭代的(因此,例如,您可以从迭代器的元素构造一个数组,而不是 object 带有迭代器的数组);总是被复制。

There are also convenience functions, like asarray_chkfinite (same copying rules as asarray , but raises ValueError if there are any nan or inf 值),以及子类的构造函数,如 matrix 或记录数组等特殊情况,当然还有实际的 ndarray 跨越缓冲区)。

原文由 abarnert 发布,翻译遵循 CC BY-SA 4.0 许可协议

asarray 的定义 是:

 def asarray(a, dtype=None, order=None):
    return array(a, dtype, copy=False, order=order)

所以它就像 array ,除了它有更少的选项,和 copy=Falsearray 默认有 copy=True

主要区别在于 array (默认情况下)将复制对象,而 asarray 除非必要,否则不会。

原文由 unutbu 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题