python如何遍历二维数组_遍历Python中的二维数组?

你需要告诉我们一些关于这一点:dataset = datas.values

这可能是一个二维数组,因为它从一个CSV的负载派生的。但是什么形状和dtype?甚至可能是阵列的一个样本。

难道是data参数中的函数吗?

什么是blackKings和values?你把他们当作名单(与append)。

for i in data:

if data[i][39] == 1:

这没有意义。 for i in data,如果data是2D,i是第一排,然后第二行,等等。如果你在一个索引要i来,你使用类似

for i in range(data.shape[0]):

二维数组索引通常与data[i,39]完成。

但在你的情况下,data[i][39]可能是一个数组。

无论何时在if声明中使用数组,您将得到这个ValueError,因为有多个值。

如果i是合适的索引,那么data[i,39]将是单个值。

为了说明:

In [41]: data=np.random.randint(0,4,(4,4))

In [42]: data

Out[42]:

array([[0, 3, 3, 2],

[2, 1, 0, 2],

[3, 2, 3, 1],

[1, 3, 3, 3]])

In [43]: for i in data:

...: print('i',i)

...: print('data[i]',data[i].shape)

...:

i [0 3 3 2] # 1st row

data[i] (4, 4)

i [2 1 0 2] # a 4d array

data[i] (4, 4)

...

i这里是4元件阵列;使用它来索引data[i]实际上会产生一个4维数组;它不是选择一个值,而是选择很多值。

相反,你需要以下列方式之一进行迭代:

In [46]: for row in data:

...: if row[3]==1:

...: print(row)

[3 2 3 1]

In [47]: for i in range(data.shape[0]):

...: if data[i,3]==1:

...: print(data[i])

[3 2 3 1]

要调试这样,你需要看中间值的一个问题,尤其是它们的形状。不要只假设。检查!

你可能感兴趣的:(python如何遍历二维数组)