Kayıt Ol

Giriş


Şifremi Kaybettim

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Giriş


Kayıt Ol

Merhaba, kayıt formu üzerinden kayıt olabilirsiniz. Fakat sosyal medya ile kayıt olmanızı önermekteyiz.

Map Filter Reduce Kavramları

Map Filter Reduce Kavramları

Merhaba,
Python’daki varsayılan fonksiyonlar, kod yazarken işlerimizi kolaylaştırdığı gibi, yapılan işleri de hızlandırması ayrıca bir avantaj. Kod yazarken en çok ihtiyaç duyduğumuz işler bir listedeki değerlere işlemler yaptırmak, içlerinden bazılarını değiştirmek, bazılarını filtrelemek gibi işler. İşte Map, filter ve reduce kavramları da tam olarak bu işleri çok daha hızlı yapmak için varlar. O halde örneklerle anlatmaya başlayayım;

Map

Herhangi bir listede işlem yapmak için for ile dönmek yerine kullanabileceğimiz harika bir fonksiyon. 2 parametre alıyor, 1.si yapılacak işlem, 2.si işlemin yapılacağı değişken. Bir işlem yaparken, Python’un varsayılan fonksiyon yapısını ne kadar işlemin içerisine katarsak o kadar optimize edilmiş, dolayısıyla hızlı çalışan koda sahip oluyoruz. Bir örnekle ifade edeyim;

Problem:
Elimizde 10000000 veri uzunluğunda bir liste olsun, bu listeyi 2 ile çarpmamız gereksin. Bu işlemi 3 farklı şekilde yapacağız,

  1. Standart yöntem olan for ile
  2. lambda ve map fonksiyonu kullanarak
  3. map fonksiyonu kullanarak ancak metod yardımıyla

Bu kodu çalıştırdığımızda sonucun lambda ve map ile yapılanının, for’a göre 2 kat daha verimli olduğunu gözlemliyoruz, metod yardımıyla yapılmasınında bu ikisinin arasında kaldığını görüyoruz;

Filter:

Filter tahmin edebileceğiniz gibi, herhangi bir dizi içerisinde istenilen şarta uygun olanları almak için kullanılmakta. Bu işlem için de fonksiyon 2 değişken almakta, ilki istenen şart, ikincisi ise işlemin yapılacağı liste. Yine bu işlem içinde bir örnek edinip, onun üzerinden gözlemleyelim;

Problem:
Elimizde yine aynı uzunlukta bir liste olduğunu varsayarak, bu listedeki çift sayıları getirelim;

İşlem sonucuna bakalım;

Değerlerin birbirine yakın olmasından ziyade, buradaki bir diğer güzellik ise az satır kodla yapılan işlemin önemi. Birinde tek satırla işlem yaparken, diğerinde satır sayısı ve birçok değişken tanımlamamız gerekti.

Reduce:

Bu kavram da, bir liste içerisindeki verilerden nihai bir değer elde etmek istediğimiz zaman kullanabileceğimiz bir fonksiyon. Yine 2 değişken alarak, birinci değişken de yapılacak işlem, 2. değerde de işlem yapılacak listeyi veriyoruz. Bunu da bir örnek ile ifade edelim;

Problem:

Elimizde 10000000 veri uzunluğunda bir liste olsun, bu listedeki sayıların toplamını bulalım;

Sonuçlara bakalım;

İlginç bir şekilde reduce fonksiyonunun yavaş kaldığını görüyoruz, bunun sebebi lambda olarak ekstra metod yazarak 2’li toplama yaptırıp, bunu 3 değişkende tutması. Daha karmaşık işlemlerde daha performanslı olacağını umuyorum.

Bir dahaki yazımda görüşmek üzere.

kaynak

Hakkında Sezer BozkırYenilmez


Beni Takip Et

Cevap yazın

Captcha Captcha güncellemek için resime tıkla