[PYTHON] Appliquez la fonction à la ligne ou à la colonne de numpy.array sans utiliser la notation d'inclusion de liste

Chose que tu veux faire

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

Considérez comment appliquer votre propre fonction dans des lignes ou des colonnes de «A».

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

Ceci peut être réalisé en utilisant la notation d'inclusion de liste comme ci-dessus, Je veux penser à un moyen d'éviter d'utiliser l'instruction for.

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

(Pourquoi est-il imprimé 7 fois alors que le nombre d'éléments est de 6?)

Avec numpy.vectorize, la fonction sera appliquée élément par élément, Il ne peut pas être appliqué sur une ligne ou une colonne.

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

Vous pouvez utiliser numpy.apply_along_axis pour appliquer une fonction sur une base de ligne ou de colonne.

Recommended Posts

Appliquez la fonction à la ligne ou à la colonne de numpy.array sans utiliser la notation d'inclusion de liste
Utilisez numpy pour supprimer des colonnes ou des lignes contenant des éléments de certaines conditions
Liste des fonctions d'activation (2020)
EP 7 Utiliser les compréhensions de liste au lieu de carte et de filtre
Notation et générateur d'inclusion de liste Python
Fonctions d'ordre supérieur et notation d'inclusion en Python
Inclusions de tapple Python et expressions de générateur
Appliquez la fonction à la ligne ou à la colonne de numpy.array sans utiliser la notation d'inclusion de liste
Notation inclusive de Python (à propos de l'expression de liste et de générateur) [supplémentaire]
À propos des expressions de signal, de connexion et de lambda de PyQt
Liste des fonctions et méthodes intégrées fréquemment utilisées
Filtrer, mapper, réduire avec js et python (il existe également des expressions de flèche, des expressions lambda et des expressions d'inclusion)
[Python] Comment supprimer des lignes et des colonnes dans une table (liste des options de méthode de dépôt)
Liste des bibliothèques à installer lors de l'installation de Python à l'aide de Pyenv
J'ai essayé d'obtenir l'index de la liste en utilisant la fonction énumérer
ABC170 E - Comment résoudre sans utiliser le multiset de Smart Infants
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3