Ich bekomme eine PEP8 Beschwerde über numpy.where(mask == False)
wo Maske ist ein Boolean Array. Der PEP8-Empfehlungsvergleich sollte entweder "wenn Bedingung falsch ist" oder "wenn Bedingung nicht" sein. Was ist die Pythonische Syntax für den vorgeschlagenen Vergleich innerhalb numpy.where()
?Pythonische Array Indizierung mit Boolean Maskierung Array
Antwort
Die Negierung eines booleschen Maskenarrays in NumPy ist ~mask
.
Denken Sie auch darüber nach, ob Sie überhaupt where
benötigen. Scheinbar am häufigsten ist some_array[np.where(some_mask)]
, aber das ist nur eine unnötig wortreiche und ineffiziente Art, some_array[some_mask]
zu schreiben.
Die Boolesche Indizierung dauert genauso lange wie die Where-Version. Ich denke, das bedeutet, es gibt ein implizites 'wo'. https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#boolean-array-indexing – hpaulj
@hpaulj: IIRC, für komplexere Fälle, ruft NumPy 'nonzero', aber für einfache Fälle, Es umgeht das und verwendet die boolesche Maske direkt. – user2357112
@hpaulj: Siehe den 'array_boolean_subscript' Code in [' numpy/core/src/multiarray/mapping.c'] (https://github.com/numpy/numpy/blob/master/numpy/core/src/multiarray /mapping.c). Die Zeitpunkte, die ich bekomme, sind jedoch nicht das, was ich erwartet habe. Bei einigen Eingaben ist 'where' tatsächlich schneller! – user2357112
- 1. geschachtelt np.where und boolean Array Indizierung Ausgabe
- 2. Versuchen, boolean Array Indizierung zu verstehen
- 3. Numpy Convert String Darstellung der Booleschen Array auf Boolean Array
- 4. Numpy Tutorial - Boolean Indizierung
- 5. Python Maskierung von 1D-Array
- 6. Arrays und Array Indizierung
- 7. -Stapel numpy Array-Indizierung
- 8. Numpy Indizierung reorders Array
- 9. C++ multidimensionale Array Indizierung
- 10. Array-Indizierung in N1QL
- 11. Python Numpy Array Indizierung
- 12. Pythonische Art der Iteration über 3D-Array
- 13. NumPy Boolean Array Warnung?
- 14. Indizierung Inhalt von Zell-Array mit Zelle Array von Indizes
- 15. Array Indizierung in Fragment-Shader
- 16. Unzureichende Indizierung von Pandas Array
- 17. MATLAB-artige Array-Indizierung mit Numpy
- 18. Indizierung in einem Array mit zwei Werten
- 19. Pycuda Array Indizierung mit Threads & Blocks
- 20. Javascript-Array mit benutzerdefinierter variabler Indizierung
- 21. Indizierung in Python mit Array von Indizes
- 22. Array Indizierung Erhaltung der Struktur
- 23. Indizierung numpy Array funktioniert nicht
- 24. Indizierung Double Float Array Swift
- 25. Pandas Zeilenbeschriftungen in boolean Indizierung
- 26. JSON Array mit String und boolean
- 27. Java-Boolean-Array mit Größe von Benutzereingabe
- 28. von Pandas Datenrahmen mit boolean-Serie/Array
- 29. Index numpy Array mit pd.Series von boolean
- 30. Index Python-Liste mit Numpy Boolean Array
Welchen PEP8-Tester verwenden Sie? PEP8 ist eine allgemeine Python-Stil-Empfehlung. Es ist nicht an "numpy" angepasst. Dein Ausdruck sieht für mich vollkommen in Ordnung aus. – hpaulj
'mask == False' ist das gleiche wie' ~ mask', aber ganz anders als 'mask is False' oder' not mask'. – hpaulj
@hpaulj Ich benutze pycharm und seine native code inspection ist glaube ich mit pep8 v '1.7.0' – ktavabi