Ich weiß, die folgende logische Operation mit numpy funktioniert:Logische Operationen mit Array von Strings in Python
A = np.array([True, False, True])
B = np.array([1.0, 2.0, 3.0])
C = A*B = array([1.0, 0.0, 3.0])
Aber das gleiche gilt nicht, wenn B ein Array von Strings ist. Ist es möglich, Folgendes zu tun:
A = np.array([True, False, True])
B = np.array(['eggs', 'milk', 'cheese'])
C = A*B = array(['eggs', '', 'cheese'])
Das ist eine Zeichenfolge multipliziert mit False sollte eine leere Zeichenfolge gleich sein. Kann dies ohne eine Schleife in Python gemacht werden (muss nicht numpy sein)?
Danke!
„Ich verwende immer noch eine Art von Schleife (die gleiche wie numpy Lösung), aber es wird in kurzer Liste Verständnis versteckt.“ - Im Allgemeinen, wenn Sie mit NumPy arbeiten, möchten Sie, dass Ihre Schleifen in C und nicht in Listenkompressen stattfinden. C-Schleifen vermeiden eine Menge Overhead. Python-Loops sind in der Regel einige Dutzend bis tausend Mal langsamer. – user2357112
@ user2357112 Um ehrlich zu sein, ist es mir nicht klar, ob OP numpy verwendet, weil er wirklich mächtige lineare Algebra-Toolbox braucht oder nur weil es die einzige Art ist, stückweise Operationen zu machen. Das Speichern von Strings in numpigen Arrays ist ziemlich eigenartig, es ist nicht so, als würden Sie eine Matrix-Vektor-Multiplikation damit machen ... Ich habe nur eine Alternative zur Verfügung gestellt, die _nicht numpy_ verwenden muss. Fühlen Sie sich frei zur Abstimmung oder zur Abstimmung. –