Numpy dizisindeki öğeler nasıl taşınır (örneklerle)
NumPy dizisinin öğelerini dengelemek için aşağıdaki yöntemlerden birini kullanabilirsiniz:
Yöntem 1: Öğeleri kaydırın (tüm orijinal öğeleri koruyun)
#shift each element two positions to the right data_new = np. roll (data, 2)
Yöntem 2: Öğeleri kaydırma (öğelerin değiştirilmesine izin ver)
#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)
Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.
Yöntem 1: Öğeleri kaydırın (tüm orijinal öğeleri koruyun)
Aşağıdaki kod, bir NumPy dizisinin her öğesini iki konum sağa kaydırmak için np.roll() işlevinin nasıl kullanılacağını gösterir:
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])
Her öğenin iki konum sağa kaydırıldığını ve dizinin sonundaki öğelerin basitçe ileri taşındığını unutmayın.
Öğeleri sola kaydırmak için np.roll() işlevinde negatif bir sayı da kullanabiliriz:
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])
Yöntem 2: Öğeleri kaydırma (öğelerin değiştirilmesine izin ver)
Ayrıca bir NumPy dizisinin öğelerini kaydırmak ve kaydırılan öğelerin belirli bir değerle değiştirilmesine izin vermek için özel bir işlev de tanımlayabiliriz.
Örneğin, elemanları kaydırmak ve kaydırılan tüm elemanları 0 değeriyle değiştirmek için aşağıdaki fonksiyonu tanımlayabiliriz:
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])
Öğeleri sola kaydırmak için fonksiyonda negatif bir sayı da kullanabiliriz:
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])
Ek kaynaklar
Aşağıdaki eğitimler NumPy’de diğer genel işlemlerin nasıl gerçekleştirileceğini açıklamaktadır:
NumPy’de eleman oluşumları nasıl sayılır?
NumPy dizisini sütuna göre sıralama
NumPy dizisinin modu nasıl hesaplanır