Как сдвинуть элементы в массиве 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:
Как сдвинуть элементы массива на 1 вправо python



Скачай курс
в приложении
Перейти в приложение
Открыть мобильную версию сайта
© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности

Public user contributions licensed under cc-wiki license with attribution required
Сдвиг массива вправо


Циклический сдвиг массива вправо
Напишите программу, которая выполняет циклический сдвиг элементов массива вправо на R элементов.
Циклический сдвиг элементов массива вправо
Дан одномерный массив числовых значений, насчитывающий N элементов. Выполнить перемещение.

Выполнить циклический сдвиг массива вправо на 4 элемента
Напишите программу для выполнения циклического сдвига массива вправо на 4 элемента питон

Циклический сдвиг отрицательных элементов массива на К позиций вправо а положительные записать в обратном порядке
Доброго времени суток, мне нужно совершить циклический сдвиг отрицательных элементов массива на К.

Циклический сдвиг вправо
Помогите переписать код на python #include <iostream> using namespace std; int main() < int.
Массивы: Условия задач
Числа следует выводить через пробел. Все числа целые, по модулю не больше 2 31 -1. Количество элементов массива не превышает 10000.
Разбор отредактировал Виталий Павленко
Разбор добавил Андрей Шмидт
Проходим по массиву и проверяем индекс на четность, в случае четности выводим значение массива с данным индексом. Это был один из вариантов решения задачи, но есть более эффективный: for (int i=0; i
Дан массив, состоящий из целых чисел. Нумерация элементов начинается с 0. Напишите программу, которая выведет элементы массива, номера которых четны (0, 2, 4. ).
Входные данные
Сначала задано число \(N\) — количество элементов в массиве ( \(1 \le N \le 100\) ). Далее через пробел записаны \(N\) чисел — элементы массива. Массив состоит из целых чисел.