3

我有一个包含四列的数组“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 行,在
if x[i][4]==0:
IndexError: index out of bounds

4

3 回答 3

4

您正在尝试使用 [4] 引用第四列,但由于它基于零,它实际上是 [3]

于 2013-09-17T19:37:32.520 回答
3

您可以使用索引

>>> x[x[:,3] != 1]
array([[ 1,  2,  3,  0],
       [11,  2,  3, 24],
       [ 5,  6,  7,  8]])
于 2013-09-17T19:41:37.557 回答
0

列表的索引从 开始0。因此,由于有 4 个元素,因此索引为 : 0,1,2,3。因此,如果您必须检查第 4 个元素,请使用索引 3。

if x[i][3]==0:
     pass

这将起作用

于 2013-09-17T19:45:39.007 回答