Während des Trainings der Firma war ich gezwungen, daran zu arbeiten, 100 Numpy zu klopfen, aber es gab viele Probleme, die ich nicht überwinden konnte, ohne die Funktion zu kennen, und ich war mir meines Unwissens sehr bewusst. In diesem Artikel werde ich einige der Funktionen vorstellen, die ich als Memorandum als "praktisch" empfunden habe.
Programmierhistorie: ca. 1 Jahr (nur Python) Numpy studierte in diesem Buch.
Wenn Sie zum ersten Mal auf eine Funktion stoßen, ist es überwältigend schneller, Hilfe vor Google zu sehen. Hilfe ist
np.info([Funktionsname])
ex) np.info(np.add)
Wenn es ein Jupyter-Notebook ist
[Funktionsname]?
ex) np.add?
angezeigt durch. Es werden nicht nur die Erläuterungen der Funktion, sondern auch die Arten von Argumenten und Verwendungsbeispiele beschrieben, und die Informationsmenge ist sehr groß. Es kann schmerzhaft sein, wenn Sie nicht daran gewöhnt sind, weil es Englisch ist, aber ich möchte, dass Sie sich darauf beziehen.
np.flip Invertieren Sie das Array.
a = np.arange(10)
np.flip(a)
-> array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])
Wenn es sich um einen Vektor handelt, reicht Slice ([:: -1]) aus, scheint jedoch im Fall einer Matrix nützlich zu sein. Für Matrizen können Sie eine Achse angeben, um sie in eine beliebige Richtung zu drehen.
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 Generieren Sie eine Einheitsmatrix.
np.eye(3)
-> array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
np.diag Extrahieren Sie die diagonalen Komponenten.
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 Verbreiten Sie das Array.
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 Zählt die Zahlen (nicht negativ, Typ int) im Array und speichert sie im Index dieses Werts.
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 Wiederholt das Element eine bestimmte Anzahl von Malen.
np.repeat(3, 4)
-> array([3, 3, 3, 3])
np.roll Verschiebt das Array um die angegebene Zahl nach rechts.
a = np.arange(10)
np.roll(a, 2)
-> array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7])
np.flatten Konvertieren Sie das ursprüngliche Array in ein eindimensionales Array.
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 Es zeigt Ihnen den Index an, der Werte ungleich Null enthält.
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 Konvertiert den Code des ersten Arguments in denselben Code wie das zweite 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 Extrahiert die gemeinsamen Elemente der beiden Arrays.
a = np.arange(10)
b = np.arange(5, 15)
np.intersect1d(a, b)
-> array([5, 6, 7, 8, 9])
Diese Funktionen werden nicht gespeichert, aber Sie können sie nicht verwenden, ohne sie überhaupt zu kennen. Ich würde mich sehr freuen, wenn die von mir eingeführten Funktionen in Ihrem Kopf bleiben könnten!
Recommended Posts