我正在寻找一些示例,这些示例显示了 numpy.asanyarray() numpy.asarray() 之间的区别?在什么情况下我应该专门使用asanyarray()?

最佳答案

asanyarray的代码:

return array(a, dtype, copy=False, order=order, subok=True)

对于asarray:
return array(a, dtype, copy=False, order=order)

唯一的区别在于指定了subok参数。如果您正在使用ndarray的子类,则可能要使用它。如果您不知道这意味着什么,那可能没关系。
np.array的默认值为:
array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

如果您要微调应该与所有numpy数组(以及可以制成数组的列表)一起使用的函数,并且不应该制作不必要的副本,则可以使用以下函数之一。否则,np.array在没有或没有额外参数的情况下都可以正常工作。作为初学者,不要花太多精力来理解这些差异。

===
expand_dims同时使用:
if isinstance(a, matrix):
    a = asarray(a)
else:
    a = asanyarray(a)
np.matrix子类数组只能具有2个维,但是expand_dims必须更改它,因此请使用asarray将输入转换为常规ndarray。否则,它使用asanyarray。这样,像maskedArray这样的子类将保留该类。
In [158]: np.expand_dims(np.eye(2),1)
Out[158]:
array([[[1., 0.]],

       [[0., 1.]]])
In [159]: np.expand_dims(np.matrix(np.eye(2)),1)
Out[159]:
array([[[1., 0.]],

       [[0., 1.]]])
In [160]: np.expand_dims(np.ma.masked_array(np.eye(2)),1)
Out[160]:
masked_array(
  data=[[[1., 0.]],

        [[0., 1.]]],
  mask=False,
  fill_value=1e+20)

关于python - Numpy asanyarray与asarray有任何示例吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59350359/

10-12 22:49