25

この問題は簡単に思えますが、見栄えの良い解決策を得ることができません。2 つの numpy 配列 (A と B) があり、A の要素が B にある A のインデックスを取得し、要素が B にない A のインデックスも取得したいと考えています。

だから、もし

A = np.array([1,2,3,4,5,6,7])
B = np.array([2,4,6])

現在、私は使用しています

C = np.searchsorted(A,B)

Aこれは、 が順番に並んでいるという事実を利用して[1, 3, 5]、 にある要素のインデックス を提供しAます。D = [0,2,4,6]これは素晴らしいことですが、 の要素のインデックスを取得するにAはどうすればよいBですか?

4

4 に答える 4

5
import numpy as np

a = np.array([1, 2, 3, 4, 5, 6, 7])
b = np.array([2, 4, 6])
c = np.searchsorted(a, b)
d = np.searchsorted(a, np.setdiff1d(a, b))

d
#array([0, 2, 4, 6])
于 2013-04-11T02:48:04.303 に答える