我正在寻找一些示例,这些示例显示了 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/