numpy.array()是否等于numpy.stack(...,axis = 0)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy.array()是否等于numpy.stack(...,axis = 0)?相关的知识,希望对你有一定的参考价值。
我以自我为榜样:
import numpy as np
arrays = [np.random.rand(3,4) for _ in range(10)]
arr1 = np.array(arrays)
print(arr1.shape)
arr2 = np.stack(arrays, axis=0)
print(arr2.shape)
我发现arr1和arr2具有相同的形状和内容。那这两个方法(np.array()和np.stack(...,axis = 0)是否等效?
答案
通常,您应该从两者中得到相似的东西,但是会有一些边缘情况。例如,将衣衫lists的列表传递到np.array
将得到列表的np.array
,但是np.stack
会引发异常:
In [119]: np.stack([[1,2], [4,5,6]], axis=0)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-119-2ba66e6300d6> in <module>()
----> 1 np.stack([[1,2], [4,5,6]], axis=0)
<__array_function__ internals> in stack(*args, **kwargs)
423 shapes = {arr.shape for arr in arrays}
424 if len(shapes) != 1:
--> 425 raise ValueError('all input arrays must have the same shape')
426
427 result_ndim = arrays[0].ndim + 1
ValueError: all input arrays must have the same shape
In [120]: np.array([[1,2], [4,5,6]])
Out[120]: array([list([1, 2]), list([4, 5, 6])], dtype=object)
以上是关于numpy.array()是否等于numpy.stack(...,axis = 0)?的主要内容,如果未能解决你的问题,请参考以下文章