[PYTHON] Calcul de tableau multidimensionnel sans Numpy

Opération de tableau d'astuces Python

Une note des astuces que j'ai utilisées lors de l'exécution du script python dans pypy. pypy est un système d'exécution python différent pour une exécution rapide du script python. Ce gars est certainement rapide. Cependant, la compatibilité entre pypy et numpy est extrêmement mauvaise.Récemment, bien que l'installation et l'importation se passent bien, le calcul par numpy en question devient extrêmement lent. Certaines personnes abandonnent pypy parce que cela n'a pas de sens, nous allons donc traiter ici des opérations de tableau qui n'utilisent pas numpy.

1. Addition, soustraction, multiplication et division d'un tableau unidimensionnel

Tout d'abord, il suffit d'ajouter des listes

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

Expliquer lambda est pratique lorsque vous souhaitez créer facilement une fonction. Dans l'exemple ci-dessus, une fonction est créée qui renvoie x et y en ajoutant deux arguments. D'autre part, map () prend un tableau qui a une fonction comme premier argument et un argument de la première fonction comme élément pour le deuxième argument et les suivants, et applique les éléments du tableau à la fonction dans l'ordre. Te donnera. En d'autres termes, (4,1), (5,2), (6,3) sont passés à la fonction créée par lambda dans l'ordre pour (x, y), et la somme des valeurs de retour est calculée. .. Pour map (), tuple est la valeur de retour dans python2. Series, mais iter est la valeur de retour dans python3. Series, il est donc recommandé de l'enfermer dans list () pour qu'il fonctionne à la fois dans 2. et 3. De même

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

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

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

[4,2.5,2] python3.

[4,2,2] python2.

2. Ajout d'un tableau bidimensionnel

Si vous appliquez le cas unidimensionnel, vous pouvez ajouter, soustraire, multiplier et diviser des tableaux multidimensionnels sans utiliser numpy.

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]]

Et, si vous utilisez pleinement map et lambda sans utiliser numpy comme celui-ci, l'opération entre les tableaux est délicate. Même si vous n'utilisez pas pypy, veuillez l'utiliser lorsque vous n'avez pas besoin d'importer numpy.

Bonus. Déménagement

L'inversion d'un tableau à deux dimensions est souvent utilisée en plus de l'arithmétique.

 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

Calcul de tableau multidimensionnel sans Numpy
Calcul de tableau multidimensionnel sans Numpy Partie 2
calcul de tableau numpy python
Tableau multidimensionnel Python
Fonctionnement du tableau NumPy (3)
Fonctionnement du tableau NumPy (1)
Vitesse de calcul de l'indexation pour un tableau quadratique numpy
Mémo de calcul de base Numpy
[Python] Méthode de calcul avec numpy
Liste des opérations de tableau (ndarray) de la bibliothèque de calcul numérique de Python "Numpy"
Créer un tableau numpy python
Initialisation de tableau multidimensionnel de la liste
À propos du tableau Numpy et d'un tableau
Accès en indice au tableau numpy python
Application Python: Numpy Partie 3: Double tableau
Inverser le tableau booléen numpy dans tilda