首页 > 解决方案 > 当我的 numpy 数组应该已经有 2 个暗淡时,我如何将它转换为 2D?

问题描述

我正在尝试使用从我的数组中获取一些列

[:, x]

我的程序抱怨我的 numpy 数组不是二维的,但我很确定它是。

print(len(inputs))

给我 13715

print(len(inputs[x]))

给我 402

print(inputs.shape)

给我(13715,)

当我尝试重塑

inputs.reshape(len(inputs), len(inputs[0]))

我收到一个错误

ValueError: cannot reshape array of size 13715 into shape (13715,402)

我知道对于我的 13715 个元素中的每一个,都有 402 个子元素。

我究竟做错了什么?

标签: pythonarraysnumpy

解决方案


当你得到一个像 (13715,) 这样的逗号时,这意味着你有 13715 行并且没有定义列数,即不同的行是不同的。你不能重塑它,因为这样的操作没有意义。

您可以使用行号访问每个数组,就像您所做的那样:input[x]。

您可以检查每行是否具有相同的 402 长度,如下所示:

bool_check = [len(input[n])!=402 for n in range(len(input))]
sum(bool_check)

当一个元素的长度不是 402 时,你会得到一个 True。如果你加起来,那么只有当所有元素都是 402 长时,你才会得到零。否则,总和会告诉你有多少元素不是 402 长。


推荐阅读