2012-03-30 20 views
2

So mein Problem ist, ich habe zwei parallele AnordnungenManipulieren von Daten von einem Array, beeinflussen andere Array numpy

B = np.array ([250, 270, 120, 100, 200, 300]) A = np.array ([1, 2, 5, 6, 1, 4])

Also, wenn die Werte in den einzelnen Indizes verknüpft sind (250 - 1, 270 - 2, 120 - 5, etc) will ich um jeden Wert in dem B-Array zu eliminieren, der eine gerade Zahl in dem A-Array aufweist.

Wie würde ich das machen? Jede mögliche Hilfe würde

Antwort

1
>>> b = np.array([250, 270, 120, 100, 200, 300]) 
>>> a = np.array([1, 2, 5, 6, 1, 4]) 
>>> b[a % 2 != 0] 
array([250, 120, 200]) 

zu schätzen, wenn Array ‚a‘ ist länger als Array ‚b‘, dann denke ich, werden Sie so etwas wie dies tun müssen:

>>> b[a[:len(b)] % 2 != 0] 
+0

Dank! Ich habe das Konzept auf meinen Code angewendet, aber ich erhalte den Fehler "ValueError: zu viele boolesche Indizes". Was bedeutet das? –

+0

Ich denke, es könnte sein, weil Array a länger ist als Array b. Ich habe meine Antwort aktualisiert. – grc