Fre*_*dar 3 python arrays indexing numpy
所以我有一个相当大的(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)
Run Code Online (Sandbox Code Playgroud)
在"名称"列中,有非唯一元素:len(data[:]['name'])大于len(set(data[:]['name'])).我想创建一个只包含唯一元素的新数组 name,我猜第一次出现就好了.我该如何有效地做到这一点?
要获得唯一索引,您可以使用np.unique
unique_elements, indices = np.unique(data[:]['name'], return_index = True)
Run Code Online (Sandbox Code Playgroud)
然后,您知道您需要访问的名称维度中的唯一索引.然后你应该能够选择那些指数
data = data[indices]
Run Code Online (Sandbox Code Playgroud)