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)?的主要内容,如果未能解决你的问题,请参考以下文章

numpy.array 中的零条目是不是占用内存?

numpy array的复制-老鱼学numpy

如何从 NumPy 数组中删除所有零元素?

如何检索numpy.array的维度

numpy.array 从 d 维数组中选择所有偶数元素

如何在没有科学记数法和给定精度的情况下漂亮地打印 numpy.array?