Cara memindahkan elemen dalam array numpy (dengan contoh)
Anda dapat menggunakan salah satu metode berikut untuk mengimbangi elemen array NumPy:
Metode 1: Pergeseran elemen (pertahankan semua elemen asli)
#shift each element two positions to the right data_new = np. roll (data, 2)
Metode 2: Pergeseran elemen (izinkan penggantian elemen)
#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)
Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.
Metode 1: Pergeseran elemen (pertahankan semua elemen asli)
Kode berikut menunjukkan cara menggunakan fungsi np.roll() untuk menggeser setiap elemen array NumPy dua posisi ke kanan:
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])
Perhatikan bahwa setiap elemen telah digeser dua posisi ke kanan dan elemen di akhir array telah dipindahkan ke depan.
Kita juga bisa menggunakan angka negatif di fungsi np.roll() untuk menggeser elemen ke kiri:
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])
Metode 2: Pergeseran elemen (izinkan penggantian elemen)
Kita juga dapat mendefinisikan fungsi khusus untuk menggeser elemen array NumPy dan mengizinkan elemen yang digeser tersebut diganti dengan nilai tertentu.
Misalnya, kita dapat mendefinisikan fungsi berikut untuk menggeser elemen dan mengganti semua elemen yang digeser dengan nilai 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])
Kita juga dapat menggunakan bilangan negatif pada fungsi tersebut untuk menggeser elemen ke kiri:
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])
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di NumPy:
Cara menghitung kemunculan elemen di NumPy
Cara mengurutkan array NumPy berdasarkan kolom
Cara menghitung mode array NumPy