我有一个包含四列的数组'x'。
对于每一行,如果第4列的值为1,那么我想删除整行:
x = np.array([[1,2,3,0],[11,2,3,24],[1,22,3,1],[1,22,3,1], [5,6,7,8], [9,10,11,1]])
for i in range(0,len(x)):
if x[i][4]==0:
x=np.delete(x, i,0)
我收到以下错误:
追踪(最近的呼叫最后):
文件“”,第2行,在中 如果x [i] [4] == 0:
IndexError:索引越界
答案 0 :(得分:4)
你试图用[4]引用第四列,但因为它基于零而实际上是[3]
答案 1 :(得分:3)
您可以使用indexing:
>>> x[x[:,3] != 1]
array([[ 1, 2, 3, 0],
[11, 2, 3, 24],
[ 5, 6, 7, 8]])
答案 2 :(得分:0)
列表的索引从0
开始。因此,由于有4个元素,索引是:0,1,2,3
。因此,如果您必须检查第4个元素,请使用索引3。
if x[i][3]==0:
pass
这将有效