[PYTHON] Wenden Sie die Funktion auf die Zeile oder Spalte von numpy.array an, ohne die Listeneinschlussnotation zu verwenden

Was du machen willst

>>> def dobule(x):
...     print(x)
...     return x * 2
...
>>> A = np.arange(6).reshape((3,2))
>>> A
array([[0, 1],
       [2, 3],
       [4, 5]])

Überlegen Sie, wie Sie Ihre eigene Funktion in Einheiten von Zeilen oder Spalten von "A" anwenden können.

>>> np.array([double(a) for a in A])
[0 1]
[2 3]
[4 5]
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])

Dies kann erreicht werden, indem die Listeneinschlussnotation wie oben verwendet wird. Ich möchte einen Weg finden, um die Verwendung der for-Anweisung zu vermeiden.

numpy.vectorize

https://docs.scipy.org/doc/numpy/reference/generated/numpy.vectorize.html

>>> import numpy as np
>>> np.vectorize(double)(A)
0
0
1
2
3
4
5
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])

(Warum wird es 7 Mal gedruckt, obwohl die Anzahl der Elemente 6 beträgt?)

Mit numpy.vectorize wird die Funktion Element für Element angewendet, Es kann nicht zeilen- oder spaltenbasiert angewendet werden.

numpy.apply_along_axis

https://docs.scipy.org/doc/numpy/reference/generated/numpy.apply_along_axis.html

>>> np.apply_along_axis(double, 0, A)
[0 2 4]
[1 3 5]
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])
>>> np.apply_along_axis(double, 1, A)
[0 1]
[2 3]
[4 5]
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])

Sie können numpy.apply_along_axis verwenden, um eine Funktion zeilen- oder spaltenbasiert anzuwenden.

Recommended Posts

Wenden Sie die Funktion auf die Zeile oder Spalte von numpy.array an, ohne die Listeneinschlussnotation zu verwenden
Verwenden Sie numpy, um Spalten oder Zeilen zu entfernen, die Elemente bestimmter Bedingungen enthalten
Liste der Aktivierungsfunktionen (2020)
EP 7 Listenverständnisse anstelle von Karte und Filter verwenden
Python-Listeneinschlussnotation und Generator
Funktionen höherer Ordnung und Einschlussnotation in Python
Python-Tapple-Einschlüsse und Generatorausdrücke
Wenden Sie die Funktion auf die Zeile oder Spalte von numpy.array an, ohne die Listeneinschlussnotation zu verwenden
Inklusive Notation von Python (über Liste und Generatorausdruck) [zusätzlich]
Informationen zu PyQts Signal-, Verbindungs- und Lambda-Ausdrücken
Liste häufig verwendeter integrierter Funktionen und Methoden
Filtern, Zuordnen, Reduzieren mit js und Python (Es gibt auch Pfeilausdrücke, Lambda-Ausdrücke und Einschlussausdrücke)
[Python] So löschen Sie eine Zeile / Spalte in einer Tabelle (Liste der Optionen für die Drop-Methode)
Liste der zu installierenden Bibliotheken bei der Installation von Python mit Pyenv
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
ABC170 E - So lösen Sie ohne Verwendung mehrerer intelligenter Säuglinge
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten