3

だから私はかなり大きな(20万行以上)構造化配列を持っています:

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 に答える