所以我有一个相当大的(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
的唯一元素的新数组,我想第一次出现就好了。我该如何有效地做到这一点?
答案 0 :(得分:5)
获取唯一索引,您可以使用np.unique
unique_elements, indices = np.unique(data[:]['name'], return_index = True)
然后您知道您需要访问的名称维度中的唯一索引。然后你应该能够选择那些指数
data = data[indices]