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.
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))
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.
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