Hoe elementen in een numpy-array te verplaatsen (met voorbeelden)
U kunt een van de volgende methoden gebruiken om de elementen van een NumPy-array te verschuiven:
Methode 1: Elementen verschuiven (behoud alle originele elementen)
#shift each element two positions to the right data_new = np. roll (data, 2)
Methode 2: Elementen verschuiven (toestaan dat elementen worden vervangen)
#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)
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.
Methode 1: Elementen verschuiven (behoud alle originele elementen)
De volgende code laat zien hoe u de functie np.roll() gebruikt om elk element van een NumPy-array twee posities naar rechts te verschuiven:
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])
Merk op dat elk element twee posities naar rechts is verschoven en dat de elementen aan het einde van de array eenvoudigweg naar voren zijn verplaatst.
We kunnen ook een negatief getal gebruiken in de functie np.roll() om elementen naar links te verschuiven:
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: Elementen verschuiven (toestaan dat elementen worden vervangen)
We kunnen ook een aangepaste functie definiëren om de elementen van een NumPy-array te verschuiven en toe te staan dat de verschoven elementen worden vervangen door een bepaalde waarde.
We kunnen bijvoorbeeld de volgende functie definiëren om elementen te verschuiven en alle verschoven elementen te vervangen door de waarde 0:
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])
We kunnen ook een negatief getal in de functie gebruiken om de elementen naar links te verschuiven:
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])
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in NumPy kunt uitvoeren:
Hoe elementvoorvallen in NumPy te tellen
Hoe een NumPy-array op kolom te sorteren
Hoe de modus van de NumPy-array te berekenen