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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert