logo

Python'da numpy.pad()

Python'un numpy modülü, dizide dolgu işlemi gerçekleştirmek için numpy.pad() adı verilen bir işlev sağlar. Bu işlevin birkaç gerekli ve isteğe bağlı parametresi vardır.

Sözdizimi:

 numpy.pad(array, pad_width, mode='constant', **kwargs) 

Parametreler:

dizi: dizi_benzeri

Bu, doldurmak istediğimiz kaynak dizisidir.

pad_width: int, sıra veya dizi_benzeri

Bu parametre, her eksenin kenarlarına eklenen değerlerin sayısını tanımlar. Her eksen için benzersiz ped genişlikleri (önce_1, sonra_1), (önce_2, sonra_2), ... (önce_N, sonra_N) olarak tanımlanır. Her eksen için ((önce, sonra),) önceki ve sonraki pad ile aynı şekilde ele alınacaktır. Tüm eksenler için int veya (pad,), before = after = pad genişliğinin kısayoludur.

mod: str veya function(isteğe bağlı)

Bu parametre aşağıdaki dize değerlerinden birine sahiptir:

'sabit'(Varsayılan)

boto3

Mode parametresine sabit bir değer atarsak sabit bir değerle dolgulama yapılacaktır.

'kenar'

Dizinin kenar değeridir. Dolgu bu kenar değeriyle yapılacaktır.

'doğrusal_rampa'

Bu değer, kenar değeri ile bitiş değeri arasındaki doğrusal rampa ile doldurma gerçekleştirmek için kullanılır.

'maksimum'

Bu parametre değeri, her eksen boyunca bir vektör parçasının veya tamamının maksimum değerini kullanarak doldurma işlemini gerçekleştirir.

'Anlam'

Bu parametre değeri, her eksen boyunca bir vektör parçasının veya tamamının ortalama değeri aracılığıyla doldurma işlemini gerçekleştirir.

'medyan'

Bu parametre değeri, her eksen boyunca bir vektör parçasının veya tamamının medyan değeri aracılığıyla doldurma işlemini gerçekleştirir.

'minimum'

Bu parametre değeri, her eksen boyunca bir vektör parçasının veya tamamının minimum değeri aracılığıyla doldurma işlemini gerçekleştirir.

'yansıtmak'

Bu değer, her eksen boyunca başlangıç ​​ve bitiş vektör değerlerine yansıtılan vektör yansıması yoluyla diziyi doldurur.

'simetrik'

Bu değer, dizinin kenarı boyunca yansıtılan vektör yansıması yoluyla diziyi doldurmak için kullanılır.

'dürüm'

Bu değer, vektörün eksen boyunca sarılması yoluyla dizinin doldurulmasını gerçekleştirmek için kullanılır. Başlangıç ​​değerleri sonu doldurmak için, bitiş değerleri ise başlangıcı doldurmak için kullanılır.

'boş'

Bu değer, diziyi tanımlanmamış değerlerle doldurmak için kullanılır.

stat_length: int veya sıra (isteğe bağlı)

Bu parametre 'maksimum', 'minimum', 'ortalama', 'medyan' olarak kullanılır. Statik değeri hesaplamak için kullanılan, her kenar eksenindeki değer sayısını tanımlar.

sabit_değerler: skaler veya sıra (isteğe bağlı)

Bu parametre 'sabit' olarak kullanılır. Her eksene yastıklı değerleri ayarlamak için değerleri tanımlar.

bitiş_değerleri: skaler veya sıra (isteğe bağlı)

Bu parametre 'linear_ramp'ta kullanılır. Lineer_ramp'ın son değeri için kullanılan değerleri tanımlar ve yastıklı dizinin kenarını oluşturacaktır.

bir diziye ekle java

Reflect_type: çift veya tek (isteğe bağlı)

Bu parametre 'simetrik' ve 'yansıtma'da kullanılır. Varsayılan olarak, Reflect_type, kenar değeri çevresinde değiştirilmemiş bir yansımayla 'eşittir'. Yansıtılan değerlerin kenar değerinin iki katından çıkarılmasıyla dizinin genişletilmiş kısmı 'tek' stil için oluşturulur.

İadeler:

ped: ndarray

Bu işlev, şekli pad_width'e göre artan diziye eşit olan yastıklı sıralama dizisini döndürür.

Örnek 1:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'constant', constant_values=(6, 4)) y 

Çıktı:

 array([6, 6, 6, 1, 3, 2, 5, 4, 4, 4]) 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • X değerlerinin bir listesini oluşturduk.
  • Y değişkenini bildirdik ve np.pad() fonksiyonunun döndürdüğü değeri atadık.
  • x, pad_width listesini geçtik, modu şu şekilde ayarladık: devamlı Ve sabit_değerler fonksiyonda.
  • Son olarak y değerini yazdırmaya çalıştık.

Çıktıda, tanımlanan boyut ve değerlerle doldurulmuş bir ndarray gösterilir.

Örnek 2:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'edge') y 

Çıktı:

 array([1, 1, 1, 1, 3, 2, 5, 4, 4, 4]) 

Örnek 3:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3, 2), 'linear_ramp', end_values=(-4, 5)) y 

Çıktı:

 array([-4, -2, 0, 1, 3, 2, 5, 4, 4, 5]) 

Örnek 4:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'maximum') y 

Çıktı:

 array([5, 5, 5, 1, 3, 2, 5, 4, 5, 5, 5]) 

Örnek 5:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'mean') y 

Çıktı:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Örnek 6:

 import numpy as np x = [1, 3, 2, 5, 4] y = np.pad(x, (3,), 'median') y 

Çıktı:

 array([3, 3, 3, 1, 3, 2, 5, 4, 3, 3, 3]) 

Örnek 7:

 import numpy as np a = [[1, 2], [3, 4]] y = np.pad(x, (3,), 'minimum') y 

Çıktı:

 array([[1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [3, 3, 3, 3, 4, 3, 3], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1]]) 

Örnek 8:

 import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) y = np.pad(x, 3, pad_with) y 

Çıktı:

 array([41, 31, 21, 11, 21, 31, 41, 51, 41, 31]) 

Yukarıdaki kodda

  • Numpy'yi np takma adıyla içe aktardık.
  • Bir fonksiyon yarattık pad_with ile vektör , pad_width , iekseni , Ve kwarglar .
  • Dolgu değerlerini almak için pad_value değişkenini tanımladık. elde etmek() işlev.
  • Padding değerlerini vektörün kısmına aktardık.
  • Np.arange() fonksiyonunu kullanarak bir x dizisi oluşturduk ve reshape() fonksiyonunu kullanarak şeklini değiştirdik.
  • Bir y değişkeni bildirdik ve np.pad() fonksiyonunun döndürülen değerini atadık.
  • Fonksiyonda x ve pad_width listesini geçtik
  • Son olarak y değerini yazdırmaya çalıştık.

Çıktıda, tanımlanan boyut ve değerlerle doldurulmuş bir ndarray gösterilir.

Örnek 9:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): padding_value = kwargs.get('padder', 10) vector[:pad_width[0]] = padding_value vector[-pad_width[1]:] = padding_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with) 

Çıktı:

 array([[10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 0, 1, 10, 10, 10], [10, 10, 10, 2, 3, 10, 10, 10], [10, 10, 10, 4, 5, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10], [10, 10, 10, 10, 10, 10, 10, 10]]) 

Örnek 10:

 import numpy as np import numpy as np def pad_with(vector, pad_width, iaxis, kwargs): ... pad_value = kwargs.get('padder', 10) ... vector[:pad_width[0]] = pad_value ... vector[-pad_width[1]:] = pad_value x = np.arange(6) x = x.reshape((3, 2)) np.pad(x, 3, pad_with, padder=100) 

Çıktı:

 array([[100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 0, 1, 100, 100, 100], [100, 100, 100, 2, 3, 100, 100, 100], [100, 100, 100, 4, 5, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100], [100, 100, 100, 100, 100, 100, 100, 100]])