1

这是我的问题:我正在处理来自不同接收器的输出,它们在我的数组的第 0 列中按数字列出。我正在尝试找到与显示的某些接收器值相对应的索引。对于下面的代码,我试图找到所有值为 6 的索引。

我的问题是,对于输出(打印),我只得到 [],好像没有与接收器 6 的值相对应的索引。我已经看过数据文件并且知道这是不正确的。数据文本文件是一个 4x22000ish 数组。任何帮助将不胜感激。谢谢。

from numpy import *

data = loadtxt("/home/***")
s,t,q = data[:,0], data[:,2], data[:,3]                         
t,q = loadtxt("/home/***", usecols = (2,3), unpack=True)

indices = []
for index, value in enumerate(data[:,0]):
    if value == '6':
        indices.append(index)

print indices
4

1 回答 1

1
numpy.nonzero(data[:,0]==6)[0]

data[:,0]==6 返回一个布尔数组,条件为真时为1,为假时为0

numpy.nonzero 返回容器内非零元素的索引

您可能也有兴趣知道您可以执行以下操作

data[data[:,0]==6,2]

当第一列为零时从第二列抓取所有元素

于 2013-07-30T23:42:07.260 回答