hier ist mein Problem. Ich möchte eine Boolesche Matrix B erstellen, die True
enthält überall die Matrix A einen Wert in Vektor v enthalten ist, besitzt eine unbequeme Lösung wäre:Wie kann ich den `ismember()` `Befehl von Matlabs in Python implementieren?
import numpy as np
>>> A = np.array([[0,1,2], [1,2,3], [2,3,4]])
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
>>> v = [1,2]
>>> B = (A==v[0]) + (A==v[1]) # matlab: ``B = ismember(A,v)``
array([[False, True, True],
[ True, True, False],
[ True, False, False]], dtype=bool)
Gibt es vielleicht eine Lösung, die wäre es bequemer, wenn A und v mehr Werte hätten?
Prost!
Sie haben eine gute Antwort auf die falsche Frage, ich denke - Sie wollen, dass A ein 3x3-Array ist und einen 3x3 Wahrheitswert für jedes dieser 9 Elemente zurückgibt.Also, passen Sie Ihre Antwort leicht an: [[(Element in v) für Element in Zeile] für Zeile in A) funktioniert gut. Ich bin auch neugierig, warum Sie erwarten, dass dies langsam wäre. –