找到numpy数组中重复值的索引

时间:2013-07-30 23:39:40

标签: python arrays numpy

这是我的问题:我正在处理来自不同接收器的输出,并且它们在我的数组的第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

1 个答案:

答案 0 :(得分:1)

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

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

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

你可能也有兴趣知道你可以做一些事情,比如

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

在第一列为零时从第二列获取所有元素