Jak przenosić elementy w tablicy numpy (z przykładami)


Aby przesunąć elementy tablicy NumPy, możesz użyć jednej z następujących metod:

Metoda 1: Przesuń elementy (zachowaj wszystkie oryginalne elementy)

 #shift each element two positions to the right
data_new = np. roll (data, 2)

Metoda 2: Przesuń elementy (pozwól na wymianę elementów)

 #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)

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Metoda 1: Przesuń elementy (zachowaj wszystkie oryginalne elementy)

Poniższy kod pokazuje, jak użyć funkcji np.roll() do przesunięcia każdego elementu tablicy NumPy o dwie pozycje w prawo:

 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])

Należy zauważyć, że każdy element został przesunięty o dwie pozycje w prawo, a elementy na końcu tablicy zostały po prostu przesunięte do przodu.

Możemy także użyć liczby ujemnej w funkcji np.roll() , aby przesunąć elementy w lewo:

 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])

Metoda 2: Przesuń elementy (pozwól na wymianę elementów)

Możemy także zdefiniować niestandardową funkcję przesuwania elementów tablicy NumPy i umożliwiania zamiany przesuniętych elementów na określoną wartość.

Na przykład możemy zdefiniować następującą funkcję, aby przesuwać elementy i zastępować wszystkie przesunięte elementy wartością 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])

Możemy także użyć w funkcji liczby ujemnej, aby przesunąć elementy w lewo:

 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])

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w NumPy:

Jak policzyć wystąpienia elementów w NumPy
Jak posortować tablicę NumPy według kolumny
Jak obliczyć tryb tablicy NumPy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *