Як перемістити елементи в масиві numpy (з прикладами)


Щоб зсунути елементи масиву NumPy, можна використати один із наведених нижче методів:

Спосіб 1: Зміщення елементів (збереження всіх початкових елементів)

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

Спосіб 2: Зсув елементів (дозволити заміну елементів)

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

Наступні приклади показують, як використовувати кожен метод на практиці.

Спосіб 1: Зміщення елементів (збереження всіх початкових елементів)

Наступний код показує, як використовувати функцію np.roll() для зміщення кожного елемента масиву NumPy на дві позиції вправо:

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

Зауважте, що кожен елемент було зміщено на дві позиції вправо, а елементи в кінці масиву просто переміщено вперед.

Ми також можемо використовувати від’ємне число у функції np.roll() , щоб зсунути елементи вліво:

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

Спосіб 2: Зсув елементів (дозволити заміну елементів)

Ми також можемо визначити спеціальну функцію для зсуву елементів масиву NumPy і дозволити замінити зміщені елементи на певне значення.

Наприклад, ми можемо визначити наступну функцію для зміщення елементів і заміни всіх зміщених елементів на значення 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])

Ми також можемо використовувати від’ємне число у функції, щоб зрушити елементи вліво:

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

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в NumPy:

Як підрахувати входження елементів у NumPy
Як сортувати масив NumPy за стовпцями
Як розрахувати режим масиву NumPy

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *