gpt4 book ai didi

python - 如何展平在第二个轴上具有不同长度的 2d numpy 数组?

转载 作者:太空狗 更新时间:2023-10-29 17:58:37 24 4
gpt4 key购买 nike

我有一个像这样的 numpy 数组:

myArray = np.array([[1,2],[3]])

但我不能把它弄平,

In: myArray.flatten()
Out: array([[1, 2], [3]], dtype=object)

如果我在第二个轴上将数组更改为相同的长度,那么我可以将其展平。

In: myArray2 = np.array([[1,2],[3,4]])
In: myArray2.flatten()
Out: array([1, 2, 3, 4])

我的问题是:

我可以使用类似 myArray.flatten() 的东西,不管数组的维度和它的元素的长度,并得到输出:array([1,2,3 ])?

最佳答案

myArray对象 的一维数组。您的列表对象将简单地保持与 flatten()ravel() 相同的顺序。您可以使用 hstack水平顺序堆叠数组:

>>> np.hstack(myArray)
array([1, 2, 3])

请注意,这基本上等同于使用 concatenate轴为 1(这应该很直观):

>>> np.concatenate(myArray, axis=1)
array([1, 2, 3])

如果您没有但是可以合并这些项目,最好使用flatten()ravel() 性能:

In [1]: u = timeit.Timer('np.hstack(np.array([[1,2],[3,4]]))'\
....: , setup = 'import numpy as np')
In [2]: print u.timeit()
11.0124390125

In [3]: u = timeit.Timer('np.array([[1,2],[3,4]]).flatten()'\
....: , setup = 'import numpy as np')
In [4]: print u.timeit()
3.05757689476

Iluengo's answer您还可以了解有关为什么在给定数组类型的情况下不能使用 flatten()ravel() 的更多信息。

关于python - 如何展平在第二个轴上具有不同长度的 2d numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29517392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com