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

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir