gpt4 book ai didi

python - 将不同列长度的 numpy 矩阵的条目放入一维数组中

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:37 31 4
gpt4 key购买 nike

我正在使用 Python 工作。我有一个长度为 L 的 numpy 数组,称为“arr”,arr = np.empty(L, dtype = object) ,其中 arr 的每个条目都包含另一个 numpy 数组,但每个条目都有一个不同的长度(这就是我使用 dtype = object 的原因)。现在我想最有效地获取 arr 中包含的每个条目并将其放入一个大的一维 numpy 数组中。换句话说,我想要一个带有 array([arr[0,0], arr[0,1], arr[0,2], ... , arr[1,0], arr[0,1], ...]) 在此特定顺序中。有关如何在 Pyhton 中编写此内容的任何帮助。

最佳答案

听起来您想展平嵌套列表。也就是说,数组的数组实际上是列表的列表。有一个标准的 Python 习惯用法,itertools.chain:

制作一个数组的示例数组:

In [828]: arr = np.array([np.arange(i) for i in range(1, 5)])
In [829]: arr
Out[829]: array([array([0]), array([0, 1]), array([0, 1, 2]), array([0, 1, 2, 3])], dtype=object)

导入并使用链。 *arr 扩展 arr 就好像它是一个列表:

In [830]: from itertools import chain
In [831]: list(chain(*arr))
Out[831]: [0, 0, 1, 0, 1, 2, 0, 1, 2, 3]
In [832]: np.array(_)
Out[832]: array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3])

但是数组列表描述还表明我们可以使用np.concatenate(或np.hstack):

In [837]: np.concatenate(arr)
Out[837]: array([0, 0, 1, 0, 1, 2, 0, 1, 2, 3])

concatenate采用一个“列表”,例如并将它们连接起来(在唯一的轴上)。

In [841]: list(arr)
Out[841]: [array([0]), array([0, 1]), array([0, 1, 2]), array([0, 1, 2, 3])]

关于python - 将不同列长度的 numpy 矩阵的条目放入一维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44102261/

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