gpt4 book ai didi

python - 丢失 numpy 数组的维度

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:05 25 4
gpt4 key购买 nike

我有一个 numpy 数组,它由列表组成,每个列表包含更多列表。我一直在尝试找出一种使用 numpy 来折叠这些列表的维度的聪明而快速的方法,但没有任何运气。

我看到的是这样的:

>>> np.shape(projected)
(13,)
>>> for i in range(len(projected)):
print np.shape(projected[i])
(130, 3200)
(137, 3200)
.
.
(307, 3200)
(196, 3200)

我想要得到的是一个包含所有子列表的列表,长度为 130+137+..+307+196。我尝试使用 np.reshape() 但它给出了一个错误:ValueError: total size of new array must be unchanged

np.reshape(projected,(total_number_of_lists, 3200))
>> ValueError: total size of new array must be unchanged

我一直在摆弄 np.vstack 但无济于事。不包含 for 循环和 .append() 的任何帮助将不胜感激。

最佳答案

看来你可以使用np.concatenate沿着第一个轴 axis=0 就像这样 -

np.concatenate(projected,0)

sample 运行-

In [226]: # Small random input list
...: projected = [[[3,4,1],[5,3,0]],
...: [[0,2,7],[8,2,8],[7,3,6],[1,9,0],[4,2,6]],
...: [[0,2,7],[8,2,8],[7,3,6]]]

In [227]: # Print nested lists shapes
...: for i in range(len(projected)):
...: print (np.shape(projected[i]))
...:
(2, 3)
(5, 3)
(3, 3)

In [228]: np.concatenate(projected,0)
Out[228]:
array([[3, 4, 1],
[5, 3, 0],
[0, 2, 7],
[8, 2, 8],
[7, 3, 6],
[1, 9, 0],
[4, 2, 6],
[0, 2, 7],
[8, 2, 8],
[7, 3, 6]])

In [232]: np.concatenate(projected,0).shape
Out[232]: (10, 3)

关于python - 丢失 numpy 数组的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30287023/

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