NumPy Uygulama İşlevi

Numpy Uygulama Islevi



NumPy olarak bilinen Python tarafından sunulan yerleşik kitaplık, çok boyutlu diziler oluşturmamıza, bunları değiştirmemize ve üzerinde çeşitli aritmetik hesaplamalar yapmamıza olanak tanır. Uygula işlevi, NumPy paketi tarafından da sağlanır. Apply işlevinin tipik kullanım durumu, örneğin bir satırın her bir öğesini kareye almak istiyorsak, bir diziyi dilimlemek ve bir listenin her öğesinde bazı işlemler gerçekleştirmek istediğimiz senaryoya benzer. Tabii ki Python'da for döngülerinin yavaş olduğunu biliyoruz, bu yüzden mümkünse onlardan kaçınmak istiyoruz. Bir veri çerçevesinin her satırında veya sütununda aynı işlemi yapmak istiyorsanız “uygula” işlevi kullanılabilir. Başka bir deyişle, bir for-döngüsü yazmak zorunda kalmadan bir for-döngüsü ile yapmak istediğinizi yapar.

Koşullara bağlı olarak diziye herhangi bir işlevi uygulamak için iki yöntem vardır. Fonksiyonu dizinin her bir elemanına tek tek uyguladığımızda faydalı olan “eksene uygula” fonksiyonunu uygulayabiliriz ve n boyutlu diziler için kullanışlıdır. İkinci yöntem, tek boyutlu bir dizi için geçerli olan 'eksen boyunca uygula'dır.

Sözdizimi:

Yöntem 1: Eksen Boyunca Uygula

dizi. application_along_axis ( 1d_fonksiyonu , eksen , varış , *arglar , **kuartlar )

Sözdiziminde, beş argüman ilettiğimiz “numpy.apply” fonksiyonumuz var. “1d_function” olan ilk argüman, gerekli olan tek boyutlu dizi üzerinde çalışır. İkinci argüman olan “eksen” ise diziyi hangi eksende dilimlemek ve o fonksiyonu uygulamak istediğinizdir. Üçüncü parametre, işlevi uygulamak istediğimiz verilen dizi olan “arr” dır. “*args” ve “*kwargs” eklenmesi gerekli olmayan ek argümanlardır.







Örnek 1:

“Uygulama” yöntemlerinin daha iyi anlaşılmasına doğru ilerleyerek, uygulama yöntemlerinin çalışmasını kontrol etmek için bir örnek yapıyoruz. Bu durumda “apply_along_Axis” fonksiyonunu gerçekleştiriyoruz. İlk adımımıza geçelim. Önce NumPy kitaplıklarımızı np olarak dahil ediyoruz. Ardından, “8, 1, 7, 4, 3, 9, 5, 2 ve 6” tamsayılı 3×3 matrisini tutan “arr” adında bir dizi oluşturuyoruz. Bir sonraki satırda, application_along_Axis fonksiyonunun sonucunu tutmaktan sorumlu “array” adında bir değişken oluşturuyoruz.



Bu fonksiyona üç argüman iletiyoruz. İlki diziye uygulamak istediğimiz fonksiyondur, bizim durumumuzda dizimizin sıralanmasını istediğimiz için sıralı fonksiyondur. Ardından, dizimizi eksen=1 boyunca dilimlemek istediğimiz anlamına gelen ikinci argüman olan “1”i iletiyoruz. Laslty, bu durumda sıralanacak diziyi geçiyoruz. Kodun sonunda, print() deyimi kullanılarak görüntülenen her iki diziyi de – orijinal dizi ve sonuçta ortaya çıkan dizi – yazdırırız.



içe aktarmak dizi olarak Örneğin.

varış = Örneğin. dizi ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , iki , 6 ] ] )

dizi = Örneğin. application_along_axis ( sıralanmış , 1 , varış )

Yazdır ( 'orijinal dizi:' , varış )

Yazdır ( 'sıralanan dizi:' , dizi )





Aşağıdaki çıktıda görebileceğimiz gibi, her iki diziyi de görüntüledik. İlkinde, değerler matrisin her satırına rastgele yerleştirilir. Ama ikincisinde, sıralanmış diziyi görebiliriz. “1” eksenini geçtiğimiz için tüm diziyi sıralamadı ama görüntülendiği gibi satır bazında sıraladı. Her satır sıralanır. Verilen dizideki ilk satır “8, 1 ve 7” dir. Sıralı dizide iken ilk satır “1, 7 ve 8” dir. Aynı şekilde, her satır sıralanır.



Yöntem 2: Eksene Uygula

dizi. Apply_over_axes ( işlev , a , eksenler )

Verilen sözdiziminde, işlevi verilen eksende uygulamaktan sorumlu olan numpy.apply_over_axis işlevine sahibiz. Apply_over_axis işlevinin içinde üç argüman iletiyoruz. Bunlardan ilki gerçekleştirilecek olan fonksiyondur. İkincisi dizinin kendisidir. Ve sonuncusu, işlevi uygulamak istediğimiz eksendir.

Örnek 2:

Aşağıdaki örnekte, üç boyutlu dizinin toplamını hesapladığımız “apply” fonksiyonunun ikinci yöntemini gerçekleştiriyoruz. Unutulmaması gereken bir şey, iki dizinin toplamının tüm diziyi hesapladığımız anlamına gelmediğidir. Bazı dizilerde, satır bazında toplamı hesaplıyoruz, bu da satırları eklediğimiz ve onlardan tek öğeyi çıkardığımız anlamına geliyor.

Gelelim kodumuza. Önce NumPy paketini içe aktarıyoruz ve ardından üç boyutlu diziyi tutan bir değişken oluşturuyoruz. Bizim durumumuzda değişken “arr” dır. Sonraki satırda, application_over_axis işlevinin sonuç dizisini tutan başka bir değişken oluşturuyoruz. Apply_over_Axis fonksiyonunu “arr” değişkenine üç argümanla atadık. İlk argüman, np.sum olan toplamı hesaplamak için NumPy'nin yerleşik işlevidir. İkinci parametre dizinin kendisidir. Üçüncü argüman, fonksiyonun uygulandığı eksendir, bu durumda “[0, 2]” eksenimiz vardır. Kodun sonunda print() deyimini kullanarak her iki diziyi de çalıştırıyoruz.

içe aktarmak dizi olarak Örneğin.

varış = Örneğin. dizi ( [ [ [ 6 , 12 , iki ] , [ iki , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ iki , 17 , 18 ] , [ 0 , yirmi bir , 8 ] ] ] )

dizi = Örneğin. Apply_over_axes ( Örneğin. toplam , varış , [ 0 , iki ] )

Yazdır ( 'orijinal dizi:' , varış )

Yazdır ( 'dizi toplamı:' , dizi )

Aşağıdaki şekilde gösterildiği gibi, application_over_axis işlevini kullanarak üç boyutlu dizilerimizden bazılarını hesapladık. İlk görüntülenen dizi “2, 3, 3” şeklindeki orijinal dizi, ikincisi ise satırların toplamıdır. İlk satır toplamı “53”, ikincisi “54” ve sonuncusu “57” dir.

Çözüm

Bu makalede, NumPy'de application işlevinin nasıl kullanıldığını ve farklı işlevleri eksen boyunca veya üzerinde dizilere nasıl uygulayabileceğimizi inceledik. NumPy tarafından sağlanan 'apply' yöntemlerini kullanarak istediğiniz satır veya sütuna herhangi bir işlevi dilimleyerek uygulamak kolaydır. Tüm diziye uygulamamız gerekmediğinde verimli bir yoldur. Bu gönderiyi, uygulama yöntemini nasıl kullanacağınızı öğrenmede faydalı bulacağınızı umuyoruz.