Pendant la formation de l'entreprise, j'ai été obligé de travailler à frapper 100 Numpy, mais il y avait beaucoup de problèmes que je ne pouvais pas battre sans connaître la fonction, et j'étais parfaitement conscient de mon manque de connaissances. Dans cet article, je présenterai certaines des fonctions que j'ai trouvées "pratiques" sous forme de mémorandum.
Historique de programmation: environ 1 an (Python uniquement) Numpy a étudié dans ce livre.
Lorsque vous rencontrez une fonction pour la première fois, il est extrêmement rapide de voir l'aide avant Google. l'aide est
np.info([Nom de la fonction])
ex) np.info(np.add)
Si c'est un notebook Jupyter
[Nom de la fonction]?
ex) np.add?
indiqué par. Non seulement l'explication de la fonction, mais également les types d'arguments et d'exemples d'utilisation sont décrits, et la quantité d'informations est très importante. Puisqu'il s'agit de l'anglais, cela peut être douloureux si vous n'y êtes pas habitué, mais j'aimerais que vous y fassiez référence.
np.flip Inversez le tableau.
a = np.arange(10)
np.flip(a)
-> array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
Les tranches ([:: -1]) sont suffisantes pour les vecteurs, mais elles semblent être utiles pour les matrices. Pour les matrices, vous pouvez spécifier un axe pour l'inverser dans n'importe quelle direction.
a = np.arange(9).reshape(3,3)
np.flip(a)
-> array([[8, 7, 6],
[5, 4, 3],
[2, 1, 0]])
np.flip(a, axis=0)
->array([[6, 7, 8],
[3, 4, 5],
[0, 1, 2]])
np.flip(a, axis=1)
-> array([[2, 1, 0],
[5, 4, 3],
[8, 7, 6]])
np.eye Générez une matrice d'unité.
np.eye(3)
-> array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
np.diag Extraire les composants diagonaux.
a = np.random.randint(0,10, (3,3))
print(a)
-> [[5 2 8]
[2 7 5]
[5 1 0]]
p.diag(a)
-> array([5, 7, 0])
np.tile Écartez le tableau.
a = np.array([[0, 1], [1, 0]])
np.tile(a, (2,2))
-> array([[0, 1, 0, 1],
[1, 0, 1, 0],
[0, 1, 0, 1],
[1, 0, 1, 0]])
np.bincount Compte les nombres (non négatifs, de type int) dans le tableau et les stocke dans l'index de cette valeur.
a = np.random.randint(0, 10, 10)
print(a)
-> array([8 6 0 8 4 6 2 5 2 1])
np.bincount(a)
-> array([1, 1, 2, 0, 1, 1, 2, 0, 2], dtype=int64)
np.repeat Répète l'élément un nombre spécifié de fois.
np.repeat(3, 4)
-> array([3, 3, 3, 3])
np.roll Décale le tableau vers la droite du nombre spécifié.
a = np.arange(10)
np.roll(a, 2)
-> array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
np.flatten Convertissez le tableau d'origine en tableau unidimensionnel.
a = np.arange(9).reshape(3,3)
print(a)
-> [[0 1 2]
[3 4 5]
[6 7 8]]
b = a.flatten()
print(b)
-> [0 1 2 3 4 5 6 7 8]
np.nonzero Il vous indiquera l'index qui contient des valeurs non nulles.
a = np.array([1,0,0,1])
b = np.array([1,1,1,1])
print(np.nonzero(a))
-> (array([0, 3], dtype=int64),)
print(np.nonzero(b))
-> (array([0, 1, 2, 3], dtype=int64),)
np.copysign Convertit le code du premier argument en le même code que le deuxième argument.
a = np.arange(10)
b = np.repeat([1, -1], 5)
np.copysign(a, b)
-> array([ 0., 1., 2., 3., 4., -5., -6., -7., -8., -9.])
np.intersect1d Extrait les éléments communs des deux tableaux.
a = np.arange(10)
b = np.arange(5, 15)
np.intersect1d(a, b)
-> array([5, 6, 7, 8, 9])
Ces fonctions ne sont pas mémorisées, mais vous ne pouvez pas les utiliser sans les connaître en premier lieu. Je serais très heureux si les fonctions que j'ai introduites pouvaient rester dans le coin de votre tête!
Recommended Posts