Skip to content

NumPy: Ein ndarray erstellen, bei dem alle Elemente mit demselben Wert initialisiert sind

Python

In diesem Artikel wird beschrieben, wie SIE ein NumPy-Array ndarray erstellen, bei dem alle Elemente mit demselben Wert (0, 1, gegebener Wert) initialisiert werden.

Geben Sie Form (Anzahl Zeilen, Spalten usw.) und Typ an.

  • numpy.zeros(): Mit 0 initialisieren
  • numpy.ones(): Mit 1 initialisieren
  • numpy.full(): Mit einem gegebenen Wert initialisieren

Erstellen Sie mit der gleichen Form und dem gleichen Typ wie das vorhandene Array. Es ist auch möglich, einen anderen Typ anzugeben.

  • numpy.zeros_like(): Mit 0 initialisieren
  • numpy.ones_like(): Mit 1 initialisieren
  • numpy.full_like(): Mit einem gegebenen Wert initialisieren

Wie am Ende beschrieben, können SIE statt eines neuen Arrays auch alle Elemente eines bestehenden Arrays durch einen gegebenen Wert ersetzen.

Im following Artikel erfahren Sie, wie Sie ein leeres Array erstellen.

Sie können das ursprüngliche Array ndarray auch kacheln, um ein neues ndarray zu erstellen.

Im folgenden Artikel erfahren Sie, wie Sie die integrierte Liste initialisieren.

numpy.zeros(): Mit 0 initialisieren

Verwenden Sie numpy.zeros(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit 0 gefüllt sind.

Geben Sie die Form des zu erstellenden Arrays an. Bei Einem Skalarwert WIRD Ein Eindimensionales Array Und Bei Einem Tupel Oder Einer Liste Ein Mehrdimensionales Array Erzeugt.

import numpy as np

print(np.zeros(3))
# [ 0.  0.  0.]

print(np.zeros((2, 3)))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

Standardmäßig ist dtype Float64. Sie können es auch mit dem Argument dtype angeben.

print(np.zeros(3).dtype)
# float64

print(np.zeros(3, dtype=np.int))
# [0 0 0]

print(np.zeros(3, dtype=np.int).dtype)
# int64

Weitere Informationen zum Datentyp dtype in NumPy finden Sie im following Artikel.

numpy.ones(): Mit 1 initialisieren

Verwenden Sie numpy.ones(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit 1 gefüllt sind.

Die Verwendung ist die gleiche wie bei numpy.zeros().

print(np.ones(3))
# [ 1.  1.  1.]

print(np.ones((2, 3)))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

print(np.ones(3).dtype)
# float64

print(np.ones(3, dtype=np.int))
# [1 1 1]

print(np.ones(3, dtype=np.int).dtype)
# int64

numpy.full(): Mit einem gegebenen Wert initialisieren

Sie numpy.full(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit einem bestimmten Wert anstelle von 0 oder 1 gefüllt sind.

Geben Sie die Form des zu generierenden Arrays als erstes Argument shape und den Füllwert als zweites Argument fill_value an.

print(np.full(3, 100))
# [100 100 100]

print(np.full(3, np.pi))
# [ 3.14159265  3.14159265  3.14159265]

print(np.full((2, 3), 100))
# [[100 100 100]
#  [100 100 100]]

print(np.full((2, 3), np.pi))
# [[ 3.14159265  3.14159265  3.14159265]
#  [ 3.14159265  3.14159265  3.14159265]]

Der dtype wird entsprechend dem fill_value gesetzt. Beispiel: int64 für fill_value=100 und float64 für fill_value=100.0.

print(np.full(3, 100).dtype)
# int64

print(np.full(3, 100.0).dtype)
# float64

print(np.full(3, np.pi).dtype)
# float64

Sie können auch einen Typ mit dem Argument dtype angeben. Es wird mit dem umgewandelten Wert initialisiert.

print(np.full(3, 100, dtype=float))
# [ 100.  100.  100.]

print(np.full(3, np.pi, dtype=int))
# [3 3 3]

numpy.zeros_like(): Mit 0 initialisieren

Erstellen Sie das ursprüngliche Array ndarray. Bereiten Sie als Beispiel ein Array vom Typ int und ein Array vom Typ float vor.

import numpy as np

a_int = np.arange(6).reshape((2,3))
print(a_int)
# [[0 1 2]
#  [3 4 5]]

a_float = np.arange(6).reshape((2,3)) / 10
print(a_float)
# [[ 0.   0.1  0.2]
#  [ 0.3  0.4  0.5]]

Verwenden Sie numpy.zeros_like(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit 0 gefüllt sind.

Geben Sie das ursprüngliche Array als erstes Argument an.

Ein Array ndarray mit derselben Form und demselben dtype wie das angegebene Array wird erstellt.

print(np.zeros_like(a_int))
# [[0 0 0]
#  [0 0 0]]

print(np.zeros_like(a_float))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

Sie können den Typ auch mit dem Argument dtype angeben.

print(np.zeros_like(a_int, dtype=np.float))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

numpy.ones_like(): Mit 1 initialisieren

Verwenden Sie numpy.ones_like(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit 0 gefüllt sind.

Die Verwendung ist die gleiche wie bei numpy.zeros_like().

print(np.ones_like(a_int))
# [[1 1 1]
#  [1 1 1]]

print(np.ones_like(a_float))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

print(np.ones_like(a_int, dtype=np.float))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

numpy.full_like(): Mit einem gegebenen Wert initialisieren

Verwenden Sie numpy.full_like(), um ein Array ndarray zu erstellen, bei dem alle Elemente mit einem bestimmten Wert anstelle von 0 oder 1 gefüllt sind.

Geben Sie die Form des zu generierenden Arrays als erstes Argument shape und den Füllwert als zweites Argument fill_value an. Der dtype des erstellten Arrays ist derselbe wie der dtype des ursprünglichen Arrays.

print(np.full_like(a_int, 100))
# [[100 100 100]
#  [100 100 100]]

print(np.full_like(a_float, 100))
# [[ 100.  100.  100.]
#  [ 100.  100.  100.]]

Beachten Sie, dass selbst wenn fill_value float ist, es in int umgewandelt WIRD, wenn der dtype des ursprünglichen Arrays int ist.

print(np.full_like(a_int, 0.123))
# [[0 0 0]
#  [0 0 0]]

print(np.full_like(a_float, 0.123))
# [[ 0.123  0.123  0.123]
#  [ 0.123  0.123  0.123]]

Sie können den Typ auch mit dem Argument dtype angeben.

print(np.full_like(a_int, 0.123, dtype=np.float))
# [[ 0.123  0.123  0.123]
#  [ 0.123  0.123  0.123]]

Ersetzen Sie alle Elemente eines vorhandenen Arrays durch einen bestimmten Wert

zeros_like(), ones_like() und full_like() erstellen ein neues Array basierend auf einem bestehenden Array. Das ursprüngliche Array wird nicht verändert.

a = np.arange(6).reshape(2, 3)
print(a)
# [[0 1 2]
#  [3 4 5]]

b = np.zeros_like(a)
print(b)
# [[0 0 0]
#  [0 0 0]]

print(a)
# [[0 1 2]
#  [3 4 5]]

Wenn Sie alle Elemente eines vorhandenen Arrays durch bestimmte Werte ersetzen möchten, verwenden Sie Slice, um allen neuen Elementen neue Werte zuzuweisen.

a[:, :] = 0
print(a)
# [[0 0 0]
#  [0 0 0]]

Da das , : am Ende weggelassen Werden kann, can alle Elemente unabhängig von der Anzahl der Dimensionen ausgewählt und mit [:] zugewiesen Werden.

a[:] = 1
print(a)
# [[1 1 1]
#  [1 1 1]]

Beachten Sie, dass unerwartete Ergebnisse auftreten können, wenn der Typ des Arrays nicht mit dem Typ des zuzuweisenden Werts entdeckt wird. Es ist notwendig, den Typ des Arrays vor der Zuweisung mit astype() zu ändern.

a[:] = 0.1
print(a)
# [[0 0 0]
#  [0 0 0]]

a = a.astype(np.float)
a[:] = 0.1
print(a)
# [[0.1 0.1 0.1]
#  [0.1 0.1 0.1]]