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.