Numpy asanyarray 与 asarray 的任何示例?
Posted
技术标签:
【中文标题】Numpy asanyarray 与 asarray 的任何示例?【英文标题】:Any examples for Numpy asanyarray vs asarray? 【发布时间】:2020-04-08 13:07:19 【问题描述】:我正在寻找一些例子来说明numpy.asanyarray()
和numpy.asarray()
之间的区别?在什么条件下我应该专门使用 asanyarray()?
【问题讨论】:
【参考方案1】: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)
【讨论】:
以上是关于Numpy asanyarray 与 asarray 的任何示例?的主要内容,如果未能解决你的问题,请参考以下文章