[PYTHON] Mehrdimensionale Array-Berechnung ohne Numpy

Python-Trick-Array-Operation

Ein Hinweis auf die Tricks, die ich beim Ausführen des Python-Skripts in pypy verwendet habe. pypy ist ein anderes Python-Ausführungssystem für die schnelle Ausführung von Python-Skripten. Dieser Typ ist auf jeden Fall schnell. Die Kompatibilität zwischen pypy und numpy ist jedoch äußerst schlecht. Obwohl Installation und Import selbst in letzter Zeit reibungslos verlaufen, ist die Berechnung nach numpy in letzter Zeit äußerst langsam. Einige Leute geben Pypy auf, weil es keinen Sinn ergibt. Deshalb werden wir uns hier mit Array-Operationen befassen, die kein Numpy verwenden.

1. Addition, Subtraktion, Multiplikation und Division eines eindimensionalen Arrays

Zunächst nur Listen hinzufügen

array1 = [4,5,6]
array2 = [1,2,3]
array_add = list(map(lambda x,y: x+y, array1, array2))
#[5,7,9]

Erklären Lambda ist praktisch, wenn Sie einfach eine Funktion erstellen möchten. Im obigen Beispiel wird eine Funktion erstellt, die x und y durch Hinzufügen von zwei Argumenten zurückgibt. Andererseits nimmt map () ein Array, das eine Funktion als erstes Argument und ein Argument der ersten Funktion als Element für das zweite und nachfolgende Argument hat, und wendet die Elemente im Array der Reihe nach auf die Funktion an. Werde dir geben. Mit anderen Worten, (4,1), (5,2), (6,3) werden an die von Lambda erzeugte Funktion übergeben, um (x, y) zu erhalten, und die Summe der Rückgabewerte wird berechnet. .. Für map () ist tuple der Rückgabewert in python2. Series, iter jedoch der Rückgabewert in python3. Series. Es wird daher empfohlen, ihn in list () einzuschließen, damit er sowohl in 2. als auch in 3 funktioniert. Ähnlich

#Subtraktion array_subtract = list(map(lambda x,y: x-y, array1, array2)) #[3,3,3]

#Multiplikation array_multiple = list(map(lambda x,y: x*y, array1, array2)) #[4,10,18]

#Teilung array_div = list(map(lambda x,y: x/y, array1, array2))

[4,2.5,2] python3.

[4,2,2] python2.

2. Hinzufügen eines zweidimensionalen Arrays

Wenn Sie den eindimensionalen Fall anwenden, können Sie mehrdimensionale Arrays hinzufügen, subtrahieren, multiplizieren und dividieren, ohne numpy zu verwenden.

array1 = [[1,2,3],[1,2,3]]
array2 = [[2,3,4],[2,3,4]]
array_add = list(map(lambda x,y: list(map(lambda a,b: a+b, x,y)), array1, array2))
#[[3, 5, 7], [3, 5, 7]]

Und wenn Sie Map und Lambda vollständig nutzen, ohne numpy wie dieses zu verwenden, ist die Operation zwischen Arrays umständlich. Auch wenn Sie pypy nicht verwenden, verwenden Sie es bitte, wenn Sie numpy nicht importieren müssen.

Bonus. Umzug

Die Inversion eines zweidimensionalen Arrays wird häufig zusätzlich zur Arithmetik verwendet.

 array1 = [[1,2,3],[3,4,5],[6,7,8]]
 array1_t = list(zip(*array1))
 #[(1,3,6),(2,4,7),(3,5,8)]

Recommended Posts

Mehrdimensionale Array-Berechnung ohne Numpy
Mehrdimensionale Array-Berechnung ohne Numpy Teil 2
Berechnung des Python-Numpy-Arrays
Mehrdimensionales Python-Array
NumPy-Array-Operation (3)
NumPy-Array-Operation (1)
Berechnungsgeschwindigkeit der Indizierung für ein numpy quadratisches Array
Numpy Grundberechnungsnotiz
[Python] Berechnungsmethode mit numpy
Liste der Array-Operationen (ndarray) der numerischen Berechnungsbibliothek "Numpy" von Python
Erstellen Sie ein Python-Numpy-Array
Mehrdimensionale Array-Initialisierung der Liste
Über Numpy Array und Asarray
Indexierter Zugriff auf das Python-Numpy-Array
Python-Anwendung: Numpy Teil 3: Double Array
Invertiere numpy Boolean Array in Tilda