Leifeng.com AI Research Press: Bu makale, Leifeng.com'un altyazı grubu tarafından derlenen teknik bir blogdur.Orijinal başlık, Veri Bilimi için Python: Unutmuş Olabileceğiniz 8 Kavram ve yazarı Conor Dewey'dir.
Çeviri | Pang Youzhen ve Huang Zhongjie tarafından düzenlendi | Kong Lingshuang
Kendinizi programlama sırasında aynı problemi, kavramı veya grameri tekrar tekrar ararken bulursanız, o zaman yalnız değilsiniz.
Bunu sık sık kendim yaparım.
StackOverflow ve diğer kaynak sitelerinde arama yapmak normal olsa da, size pek bir fayda sağlamaz ve dili anlama zorluğunuzu artırır.
Sınırsız bilginin ve sınırsız bedava kaynakların olduğu bir çağda yaşıyoruz, bir arayış sorunu çözecek gibi görünüyor. Ancak bu hem bir lütuf hem de bir lanet olabilir. Etkili yönetim ve entegrasyon olmadan, bu kaynaklara aşırı güvenmek uzun vadeli ilerlememizi engelleyecektir.
Kaynak: xkcd
Bir dahaki sefere karşılaşabileceğim bilgi noktalarını öğrenmek ve birleştirmek için zaman ayırmak yerine, kodu forumdan kopyaladığımı ve birkaç kez değiştirdiğimi fark ettim.
Bu yöntem tembeldir. Bu yöntem kısa vadede direnci daha az olsa da, sonuçta büyümenize, verimliliğinize ve grameri hatırlama yeteneğinize zarar verecektir.
Kısa süre önce Udemy'de "Veri Bilimi ve Makine Öğreniminde Python" adlı çevrimiçi bir kursu geçtim. Bu kurs serileri boyunca, Python veri analizinde gözden kaçırdığım bazı gramer ve kavramları sıraladım.
Bu kavramlar hakkındaki anlayışımı pekiştirmek ve StackOverFlow'da arama yapmanızı kolaylaştırmak için, burada Python, Numpy ve Pandas kullanımımla ilgili bazı bilgi noktalarını derledim.
Her bilgi noktası için kısa bir açıklama ve örnekler verdim. Ek olarak, bu bilgi noktalarının anlaşılmasını derinleştirmeye yardımcı olan videolara ve diğer materyallere bağlantılar da verdim.
Döngüler yazarken, her seferinde bir grup liste tanımlamak oldukça sıkıcıdır. Neyse ki Python, bu sorunu sadece bir satır kodla çözebilen liste anlama adı verilen yerleşik bir yönteme sahiptir. Listeleri anlamak ilk başta sizin için zor olabilir, ancak bir kez aşina olduktan sonra onları sık sık kullanacaksınız.
Kaynak: Trey Hunner
Aşağıdaki ilk örnek, her bir öğenin karesini bulmanın yaygın bir yoludur ve ikincisi, bir liste anlayışı yazmanın yoludur.
x =
out =
x içindeki öğe için:
out.append (öğe ** 2)
çıktı)
# vs.
x =
out =
çıktı)
Bazı işlevlerin yalnızca birkaç kez kullanılması gerekir ve yeni bir işlev tanımlamanız gerekir. Sıkıldınız mı? Lambda işlevi bu sorunu çözebilir! Lambda işlevleri genellikle Python'da daha az uygulama ile anonim işlevler oluşturmak için kullanılır. Bu, isimsiz bir işlev oluşturmanıza izin vermektir.
Lambda işlevinin temel sözdizimi aşağıdaki gibidir:
lambda bağımsız değişkenleri: ifade
Sıradan işlevlerin yapabildiği gibi, Lambda işlevleri de tek satırda yazılabildikleri sürece yapabilir. Aşağıdaki basit örnek ve video, Lambda işlevinin gücünü daha iyi anlamanıza yardımcı olabilir.
çift = lambda x: x * 2
baskı (çift (5))
10
Lambda işlevinde ustalaştıktan sonra, harita ve filtre işlevleriyle birlikte Lambda işlevini kullandığınızda, gücün çok büyük olduğunu göreceksiniz. Özellikle, harita işlevi listedeki her bir öğe üzerinde çalışarak listeyi yeni bir listeye dönüştürür. Aşağıdaki örnekte, harita işlevi her bir öğeyi yeni bir öğe olmak için 2 ile çarpar. Buradaki liste işlevinin çıktı sonucunu bir liste türüne dönüştürdüğünü unutmayın.
# Harita
seq =
sonuç = liste (harita (lambda var: var * 2, seq))
baskı (sonuç)
Filtre işlevi, harita işlevine benzer, ancak filtre işlevi, her öğenin doğru olup olmadığını karşılaştırarak orijinal listeden bir alt küme çıkarır.
# Filtre
seq =
sonuç = liste (filtre (lambda x: x > 2, seq))
baskı (sonuç)
Python: Lambda, Map, Filter, Reduce Fonksiyonları:
https://youtu.be/cKlnR-CB3tk
Hızlı bir şekilde basit bir NumPy dizisi oluşturmak için, arange ve linspace işlevlerini kullanmak en uygun olanıdır. Hepsinin kendine özgü işlevleri vardır, ancak burada kullanılan NumPy dizilerinin (kullanım kapsamı değil) genellikle veri bilimi için çalıştırılması daha kolaydır.
Arange işlevi, başlatma ve durdurma ile belirtilen aralığa ve adım tarafından ayarlanan adım boyutuna göre, belirtilen aralıkta eşit aralıklı bir dizi oluşturur. Başlangıç değeri başlangıç ve bitiş değerine ek olarak, adım uzunluğu veya veri türü de gerektiği gibi tanımlanabilir. Burada, son değerin bir "kesme" değeri olduğu, dolayısıyla üretilen diziye dahil edilmeyeceği not edilmelidir.
# np.arange (başlat, durdur, adım)
np.arange (3, 7, 2)
dizi()
Linspace işlevleri çok benzer, ancak biraz farklıdır. Başlatma ve durdurma ile belirtilen aralığa ve num ile ayarlanan sayıya göre belirli sayıda tekdüze aralıklı dizi üretir. Bu nedenle, bir başlangıç değeri başlangıcı ve bir bitiş değeri duru ve bir sayı numarası verildiğinde, boşluk işlevi NumPy dizisindeki bu aralığı eşit olarak böler. Bu, veri görselleştirme ve zaman ekseni ifadesini çizmek için kullanışlıdır.
# np.linspace (başlatma, durdurma, sayı)
np.linspace (2.0, 3.0, num = 5)
dizi ()
Pandaları sütunları silmek veya NumPy matris öğelerini toplamak için kullanırken bu sorunla karşılaşabilirsiniz. Aksi takdirde, kesinlikle daha sonra karşılaşacaksınız. Aşağıda bir sütun silme örneği verilmiştir:
df.drop ('Sütun A', eksen = 1)
df.drop ('Satır A', eksen = 0)
Neden eksenin ne olduğunu açıklamam gerektiğini gerçekten anlamadan önce bu kod satırını sayısız kez yazdım. Yukarıdaki koddan, sütunlar üzerinde işlem yapıyorsanız ekseni 1'e ayarlamanız ve satırlar için 0'a ayarlamanız gerektiği sonucuna varabilirsiniz. Ama bu neden? Nedenini bulmayı seviyorum ya da en azından şunu hatırlıyorum:
df.shape
(Satır Sayısı, Sütun Sayısı)
Pandas'taki veri çerçevesinin şekil özniteliğine bakıldığında, ilk değerin satır sayısını ve ikinci değerin sütun sayısını temsil ettiği bir demet döndürür. Python'daki indeksleme yöntemini düşünün - davranış 0, 1 olarak listelenir, bu, bir eksen bildirme şeklimize çok benzer. Çok ilginç değil mi?
Pandalarda "eksen" parametresini nasıl kullanırım ?:
https://youtu.be/PtO3t6ynH-8
SQL'e aşina iseniz, bu işlevsel yöntemlerin anlaşılması daha kolay olabilir. Aslında, bunlar aslında veri çerçevelerini belirli bir şekilde birleştirmek için kullanılan yöntemlerdir. Hangi durumda hangisinin daha iyi olduğunu söylemek zor, o yüzden tekrar gözden geçirelim.
Concat işlevi, bir veya daha fazla veri çerçevesini onun altında veya yanında birleştirebilir (eksenin nasıl tanımlandığına bağlı olarak).
Birleştirme işlevi, birincil anahtar olarak belirtilen ortak sütundaki birden çok veri çerçevesini birleştirir.
Birleştirme işlevi, iki veri çerçevesini, birleştirme işlevine benzer şekilde birleştirir. Ancak, veri çerçevesini bazı belirlenmiş sütunlar yerine dizine dayalı olarak birleştirir.
Spesifik kullanım ve daha spesifik örnekler ile karşılaşabileceğiniz bazı özel kullanımlar hakkında bilgi edinmek için mükemmel Pandas belgelerine göz atabilirsiniz.
Youtube:
https://youtu.be/XMjSGGej9y8
Uygulama işlevini bir harita işlevi olarak düşünebilirsiniz, ancak yalnızca Pandas DataFrame veya daha spesifik olarak Seriler üzerinde çalışır. Series'e aşina değilseniz, aslında birçok yönden NumPy dizilerine çok benziyor.
Uygula işlevi, belirttiğiniz sütun veya satırdaki her öğeye bir işlev uygular. Bunun ne kadar yararlı olduğunu hayal edebilirsiniz, özellikle de döngüye gerek kalmadan tüm DataFrame sütununda normalleştirme ve öğe değeri işlemleri gerçekleştirdiğinizde.
Python Pandas Youtube öğretim videosu:
https://youtu.be/P_q0tkYqvSk
Son fakat en az değil, pivot tablodur. Microsoft Excel'e aşina iseniz, pivot tabloları bazı şekillerde duymuş olabilirsiniz. Pandaların yerleşik pivot_table işlevi, DataFrame olarak elektronik tablo tarzında bir pivot tablo oluşturabilir. Pivot tablodaki düzeylerin oluşturulan DataFrame hiyerarşik dizinde ve sütununda depolandığına dikkat edilmelidir.
Python'u veri bilimi işlemleri için kullandığınızda, sık sık karşılaştığınız bazı önemli ama biraz zor yöntemler, işlevler ve kavramlar aracılığıyla yukarıdaki yöntemleri yavaş ve etkili bir şekilde ezberleyebileceğinizi umuyorum. Kişisel olarak bunları yazmak ve basit terimlerle açıklamaya çalışmak da bu bilgiye dair anlayışımı derinleştirdi.
Leifeng.com altyazı grubu tarafından derlenmiştir.
Orijinal bağlantı:
https://towardsdatascience.com/python-for-data-science-8-concepts-you-may-have-forgotten-i-did-825966908393
Takma ad ekstra ~
Odaklanmış biri
AI teknolojisinin geliştirilmesi ve AI mühendislerinin büyümesi için bilgi arayan bir topluluk
Doğdu!
Herkesi aşağıdaki bağlantıyı ziyaret etmeye veya deneyimlemek için kodu taramaya hoş geldiniz
https://club.leiphone.com/page/home