3

所以我有一个相当大的(200k+ 行)结构化数组:

recordtype = np.dtype([('x',np.float32),('y',np.float32),('z',np.float32), \
                       ('u',np.float32),('v',np.float32),('w',np.float32), \
                       ('d',np.float32),('T',np.float32),('mdot',np.float32), \
                       ('f',np.float32),('t',np.float32),('name',np.str_,14)])
data = np.loadtxt('tmp2.out',dtype=recordtype,skiprows=2)

在“名称”列中,有非唯一元素:len(data[:]['name'])大于len(set(data[:]['name']))。我想创建一个只有来自的唯一元素的新数组 name,我想第一次出现就可以了。我将如何有效地做到这一点?

4

1 回答 1

5

要获得唯一索引,您可以使用 np.unique

unique_elements, indices = np.unique(data[:]['name'], return_index = True)

那么您知道您需要访问的名称维度中的唯一索引。然后你应该能够只选择那些索引

data = data[indices]
于 2013-10-04T17:02:35.343 回答