python遍历二维数组_在Python中遍历二维数组?
你需要告訴我們一些事情:dataset = datas.values
它可能是一個二維數組,因為它來自一個csv負載。但是什么形狀和數據類型?甚至可能是陣列的一個樣本。
這是函數中的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遍历二维数组_在Python中遍历二维数组?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php商品在最少购买,ECSHOP给商品
- 下一篇: python去掉html标签_pytho