So verschieben sie elemente in einem numpy-array (mit beispielen)
Sie können eine der folgenden Methoden verwenden, um die Elemente eines NumPy-Arrays zu versetzen:
Methode 1: Elemente verschieben (alle Originalelemente beibehalten)
#shift each element two positions to the right data_new = np. roll (data, 2)
Methode 2: Elemente verschieben (Elemente ersetzen lassen)
#define shifting function
def shift_elements (arr, num, fill_value):
result = np. empty_like (arr)
if num > 0:
result[:num] = fill_value
result[num:] = arr[:-num]
elif num < 0:
result[num:] = fill_value
result[:num] = arr[-num:]
else :
result[:] = arr
return result
#shift each element two positions to the right (replace shifted elements with zero)
data_new = shift_elements(data, 2, 0)
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Methode 1: Elemente verschieben (alle Originalelemente beibehalten)
Der folgende Code zeigt, wie Sie mit der Funktion np.roll() jedes Element eines NumPy-Arrays um zwei Positionen nach rechts verschieben:
import numpy as np #create NumPy array data = np. array ([1, 2, 3, 4, 5, 6]) #shift each element two positions to the right data_new = np. roll (data, 2) #view new NumPy array data_new array([5, 6, 1, 2, 3, 4])
Beachten Sie, dass jedes Element um zwei Positionen nach rechts verschoben wurde und die Elemente am Ende des Arrays einfach nach vorne verschoben wurden.
Wir könnten auch eine negative Zahl in der Funktion np.roll() verwenden, um Elemente nach links zu verschieben:
import numpy as np #create NumPy array data = np. array ([1, 2, 3, 4, 5, 6]) #shift each element three positions to the left data_new = np. roll (data, -3) #view new NumPy array data_new array([4, 5, 6, 1, 2, 3])
Methode 2: Elemente verschieben (Elemente ersetzen lassen)
Wir können auch eine benutzerdefinierte Funktion definieren, um die Elemente eines NumPy-Arrays zu verschieben und zu ermöglichen, dass die verschobenen Elemente durch einen bestimmten Wert ersetzt werden.
Zum Beispiel können wir die folgende Funktion definieren, um Elemente zu verschieben und alle verschobenen Elemente durch den Wert 0 zu ersetzen:
import numpy as np
#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])
#define custom function to shift elements
def shift_elements (arr, num, fill_value):
result = np. empty_like (arr)
if num > 0:
result[:num] = fill_value
result[num:] = arr[:-num]
elif num < 0:
result[num:] = fill_value
result[:num] = arr[-num:]
else :
result[:] = arr
return result
#shift each element two positions to the right and replace shifted values with zero
data_new = shift_elements(data, 2, 0)
#view new NumPy array
data_new
array([0, 0, 1, 2, 3, 4])
Wir können in der Funktion auch eine negative Zahl verwenden, um die Elemente nach links zu verschieben:
import numpy as np
#create NumPy array
data = np. array ([1, 2, 3, 4, 5, 6])
#define custom function to shift elements
def shift_elements (arr, num, fill_value):
result = np. empty_like (arr)
if num > 0:
result[:num] = fill_value
result[num:] = arr[:-num]
elif num < 0:
result[num:] = fill_value
result[:num] = arr[-num:]
else :
result[:] = arr
return result
#shift each element three positions to the left and replace shifted values with 50
data_new = shift_elements(data, -3, 50)
#view new NumPy array
data_new
array([ 4, 5, 6, 50, 50, 50])
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in NumPy ausführen:
So zählen Sie Elementvorkommen in NumPy
So sortieren Sie ein NumPy-Array nach Spalte
So berechnen Sie den Modus des NumPy-Arrays