Effiziente Verfahren zur Berechnung überschneidende Werte zwischen zwei numpy arrays

Ich habe einen Flaschenhals in meinem Programm, die durch Folgendes verursacht:

A = numpy.array([10,4,6,7,1,5,3,4,24,1,1,9,10,10,18])
B = numpy.array([1,4,5,6,7,8,9])

C = numpy.array([i for i in A if i in B])

Das erwartete Ergebnis für C ist folgende:

C = [4 6 7 1 5 4 1 1 9]

Ist es ein effizienter Weg, dies zu tun Betrieb?

Beachten Sie, dass array - A enthält sich wiederholende Werte und Sie müssen berücksichtigt werden. Ich war nicht in der Lage zu verwenden, setzen Kreuzung seit der Einnahme der Kreuzung wird es unterlassen, die sich wiederholenden Werte, Rückgabe nur [1,4,5,6,7,9].

Beachten Sie auch diese ist nur eine einfache demonstration. Die eigentliche array-Größen können in der Größenordnung von tausenden, die deutlich über einer Millionen.

InformationsquelleAutor user32147 | 2015-01-15
Schreibe einen Kommentar