Tam metin 4781 kelime ve beklenen öğrenme süresi 14 dakikadır
Kaynak: Pexels
Pandaların veri bilimi alanında tanıtılması gerekmez, yüksek performanslı, kullanımı kolay veri yapıları ve veri analiz araçları sağlar. Bununla birlikte, çok fazla veriyle uğraşırken, tek bir çekirdekteki Pandalar, fazlasıyla enerjiye sahip görünüyor ve herkesin performansı artırmak için farklı dağıtılmış sistemlere başvurması gerekiyor. Bununla birlikte, performansı iyileştirmenin değiş tokuşuna genellikle dik bir öğrenme eğrisi eşlik eder.
Ve herkes bu tür uçurumlardan olabildiğince kaçınmaya çalışıyor Tahmin edebileceğiniz gibi, hepsi pandalar kodunu yazmaktan nasıl kaçınacaklarına yöneldi.
Son 4 yılda, veri analizi için ana araç olarak pandaları kullanıyorum. "Pandas kodu yazmaktan nasıl kaçınılacağı" nın içeriğinin çoğunun pandalarla programlamanın ilk aşamalarından geldiği kabul edilmelidir. Kodu gözden geçirirken, hala birçok deneyimli programcının bazı popüler "nasıl kaçınılacağı" gönderilerine baktığını görüyorum.
Bu makalede, yazar önce bir "nasıl önlenir" örneğini gösterir ve ardından istatistikleri hesaplamak için doğru bir "nasıl kullanılır" pandalar yöntemi gösterir. İyileştirmeden sonra, kod daha kısa, okunması daha kolay ve yürütülmesi daha hızlı. Rapor süresinin formatı şu şekildedir: döngü başına 831 ms ± 25.7 ms, bu da ortalama 831 milisaniye ve 25.7 milisaniyelik standart sapma anlamına gelir. Her kod örneği, doğru yürütme süresini hesaplamak için birden çok kez yürütülür.
Her zaman olduğu gibi, JupyterNotebook'u indirebilir ve bilgisayarınızda deneyebilirsiniz.
Pandalar oyun yolculuğuna başlamak için lütfen aşağıdaki kaynakları okuyun:
Kaynak: Pexels
Örnek veri seti, her şehir için rezervasyon bilgilerini içerir, rasgele ve tek amaç, örneği göstermektir.
Veri kümesinin üç sütunu vardır:
Hız artışını daha belirgin hale getiren on bin veri seti vardır. Kod doğru pandalar biçiminde yazılırsa, pandaların DataFrames'i milyonlarca (hatta milyarlarca) istatistik satırı hesaplamak için kullanabileceğini unutmayın.
Rolling Panda / Reddit
Java dünyasından esinlenilen "döngü için çok satırlı" Python'a uygulandı.
Ayrılmış yüzde sütununun toplamını hesaplamak, yüzdeleri toplamak anlamsız, ama yine de deneyelim ve alıştırma yapalım.
Sütunları toplamanın daha Python tarzı bir yolu aşağıdaki gibidir:
Beklendiği gibi, ilk örnek en yavaş olanıdır - on bin öğeyi toplamak neredeyse 1 saniye sürer. İkinci örneğin hızı şaşırtıcı.
Doğru yol, verileri toplamak için pandaları kullanmaktır (veya sütunlarda başka herhangi bir işlemi kullanmaktır) Bu üçüncü örnektir ve en hızlısı!
Panda / Giphy Oynamak
Pandaları kullanmadan önce, numpy'ye zaten aşinaydım ve verileri filtrelemek için bir for döngüsü kullandım. Toplarken, performanstaki fark hala gözlemlenebilir.
Beklendiği gibi, ikinci örnek ilkinden çok daha hızlı
Ya daha fazla filtre eklenirse? Parantez içine ekleyin
Yuvarlanan Panda / Giphy
Şöyle diyebilirsiniz: Tamam, ancak önceki bir sütunun değerine erişmeniz gerekiyorsa, yine de bir for döngüsüne ihtiyacınız var. Hatalısınız!
Bir satırdan diğerine yüzde değişimini hesaplamak için döngüler için ve olmadan kullanın
Benzer şekilde, ikinci örnek, for döngüsü kullanan ilk örnekten çok daha hızlıdır.
Pandaların, önceki değerlere dayalı olarak istatistikleri hesaplamak için birçok işlevi vardır (örneğin, kaydırma işlevi değerleri kaydırır). Bu işlevler dönemler parametresini kabul eder ve hesaplamaya önceki değerlerin sayısını içerebilir.
Kaynak: Düşen Panda (National Geographic) Giphy
Bazen DataFrame'de karmaşık işlevleri (çok değişkenli işlevler) kullanmanız gerekir. New York'taki booking_perc değerini çiftler halinde çarpalım, diğerlerini 0 olarak ayarlayalım ve bu sütunu sales_factor olarak adlandıralım.
Yazar ilk olarak döngü için yinelemeler kullanmayı düşündü
Daha iyi bir yol, işlevi doğrudan DataFrame üzerinde kullanmaktır
En hızlı yol, fonksiyon değerini doğrudan hesaplamak için pandalar filtresini kullanmaktır
İlk örnekten son örneğe olan ivmeyi görebilirsiniz.
3 veya daha fazla değişkenli bir işlevi çözerken, birden çok pandas ifadesine ayrıştırılabilir. Bu, işlevleri kullanmaktan daha hızlıdır.
Tickle Panda / Giphy
Şimdi, pandaları kullanmaya başlamadan önce, döngüler için daha çok güvendiğimi görebilirsiniz. Verileri gruplamaya gelince, pandaların avantajlarından tam anlamıyla faydalanırsanız, kod satırlarının sayısını azaltabilirsiniz.
Aşağıdaki verileri hesaplamak için:
Pandaların bir gruplama işlemi vardır, bu nedenle DataFrame üzerinde yineleme yapmaya gerek yoktur.Pandaların gruplama işlemi SQL GROUP BY deyimiyle aynıdır.
Şaşırtıcı bir şekilde, üçüncü örnek en hızlı değil, ancak ikinciden daha özlü. Yazar, hızlandırılmış koda ihtiyacınız varsa ikinci yöntemi kullanmanızı önerir.
Mutlu Panda / Giphy
Son olarak Xiaoxin'in önerisi şudur: Bir for döngüsü yazmak için pandaları kullanmanız gerekiyorsa, onu yazmanın daha iyi bir yolu olmalıdır.
Büyük miktarda hesaplamaya sahip bazı işlevler olacaktır, yukarıdaki optimizasyon yöntemleri bile geçersiz olacaktır. O halde son çare olan Cython ve Numba'yı kullanmalıyız.
Gelin bu yöntemleri birlikte deneyelim, beklenmedik kazançlar olacak ~
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun