Kurs
“R vs. Python” dil savaşı uzun bir geçmişe sahip. Veri bilimi için fiili programlama dilleri olarak, birçok alandan farklı destekçiler çekiyorlar. Bunun sonucunda, uygulayıcılar her iki dilin sunduklarından tam anlamıyla yararlanmıyor ve kendilerini yalnızca tek bir aracı ustalıkla kullanmakla sınırlandırıyor. Oysa hem R’ı hem de Python’u kullanan iki dilli bir veri bilimci olmak, kariyerinizde karşılaşabileceğiniz sorunları daha iyi çözmenize yardımcı olabilir.
Python’un popülaritesi arttıkça, daha fazla R kullanıcısı Python’a geçiyor. Bu nedenle, bir R kullanıcısıysanız, bu makaleyi günlük iş akışınıza entegre edebileceğiniz Python kütüphanelerine genel bir bakış olarak değerlendirin. Bazılarının R’ye benzer bir sözdizimi vardır ve geçişi kolaylaştırır; diğerleri ise daha fazla işlevsellik ve hız sunar.
R Kullanıcıları İçin En İyi Python Paketleri
Veri İşleme Kütüphaneleri
R, zengin bir veri işleme kütüphanesi ekosistemine sahiptir. dplyr, tidyr ya da data.table olsun, R kullanıcılarının ellerinin altında çok çeşitli araçlar bulunur. Ancak daha fazla esneklik, hız ve özellik için bazı Python alternatiflerine geçmeyi düşünebilirler.
Pandas
Python veri işleme paketlerinin başında pandas kütüphanesi gelir. Python veri bilimi yığınının birinci sınıf veri işleme paketidir ve dünya çapında milyonlarca kişi tarafından kullanılır. Haftalık 20 milyondan fazla indirmeye sahiptir ve bu da onu en popüler Python paketlerinden biri yapar.

pandas indirme istatistikleri, PyPI Stats sitesinden.
Veriyle çalışmak için sunduğu fonksiyon ve sınıf yelpazesi o kadar geniştir ki, yılların deneyimine rağmen pandas ile yeni teknikler öğrenmeye devam edebilirsiniz. pandas aynı zamanda ekosistemde kilit bir kütüphanedir; bu makalede bahsedilen birçok Python kütüphanesi, işlevselliklerinin pandas sınıflarıyla uyumlu olacak şekilde yazılmıştır.
Bu kadar kapsamlı bir kütüphane olmasına rağmen, öğrenmesi ve ustalaşması basittir. Birkaç sınıf ve fonksiyonu bilmek, herhangi bir veri kümesi üzerinde karmaşık analizler yapmanıza olanak tanır.
Python’un datatable paketi
Eğer pandas’ın sözdizimi R kullanıcılarına fazla yabancı geliyorsa, Python datatable paketi ile kendilerini evlerinde gibi hissedebilirler. R muadilinden ilham almıştır ve tamamen günümüzün devasa veri kümeleriyle başa çıkmak için yazılmıştır; gigabayt boyutundaki dosyaları saniyeler içinde okuyup işleyebilir.
Günlük bir kullanım senaryosu, büyük bir veri kümesini datatable ile okuyup pandas DataFrame formatına dönüştürmektir; bu, tamamen pandas ile okumaktan çok daha hızlıdır. Ancak bir R kullanıcısı olarak bunu yapmanız bile gerekmez; çünkü datatable, R’ın data.table paketine neredeyse aynı sözdizimine sahiptir.
RapidsAI & cuDF
Python’a geçmek isteyen R kullanıcıları, Python kütüphanelerinin yaygın GPU desteği sayesinde gelişmiş performanstan da yararlanabilir. RapidsAI, cuDF kütüphanesi ile tam da bu imkânı sunar. cuDF, NVIDIA GPU’larının hesaplama gücünden yararlanarak milyarlarca satırlık veri kümelerini işleyebilmenizi sağlayan bir dataframe kütüphanesidir. cuDF’in bir diğer avantajı da pandas’a benzer bir sözdizimine sahip olmasıdır.
Veri Görselleştirme Kütüphaneleri
R’ın ggplot2 paketi, veri görselleştirme kütüphaneleri için standartları belirler ve veri biliminin en yaygın kullanılan kütüphaneleri arasındadır. Ancak—veri görselleştirme için Python’a geçmeyi düşünen herhangi bir R kullanıcısı için—pek çok güçlü alternatif vardır.
Matplotlib
Matplotlib, insanlar Python’da veri bilimi öğrenmeye başladıklarında tanıştıkları ilk kütüphanelerden biridir. Karmaşıklık ve esneklik arasında mükemmel bir denge kuran nadir kütüphanelerdendir. Başka bir deyişle, yeni başlayanların harika grafikler oluşturmayı öğrenmesi kolaydır ve deneyimli kullanıcıların gerçekten şaşırtıcı özel çizimler yaratması için gereken tüm araçlar da mevcuttur.

Matplotlib indirme istatistikleri, PyPI Stats sitesinden.
Seaborn
Matplotlib’in dezavantajı, grafiklerin çok fazla özelleştirme gerektirmesidir. Ancak kolayca stil verilebilen grafikler için Seaborn’a göz atabilirsiniz. Matplotlib üzerinde bir sarmalayıcı API’dir ve yeni başlayanların son derece estetik grafikler oluşturmasını oldukça kolaylaştırır. Seaborn ayrıca, Matplotlib’de hazır bulunmayan yeni grafik türleri ve alt grafik araçları sunar.
Plotly & Dash
Python, çeşitli etkileşimli veri görselleştirme kütüphaneleri kullanarak etkileşimli görselleştirmeler oluşturmanıza da olanak tanır. Bunların en önemlisi, R ile de güçlü bağları olan Plotly’dir. Yüksek kaliteli etkileşimli grafikler üretmek için mükemmeldir ve karmaşık çizimler oluşturup özelleştirmek için arayüzler sağlar.
Ayrıca, Python’un Dash çatısı Plotly üzerine kuruludur ve panoları barındırmak için güzel web uygulamalarını kolayca oluşturmanıza olanak tanır. Etkileşimli grafikleri kolayca oluşturmanızı sağlayan bir diğer Python kütüphanesi de Bokeh’tir; bu kütüphane de görselleştirmeleri web uygulamaları olarak kolayca yayına almanıza imkân verir.
Plotnine
Python’da doğal bir ggplot2 alternatifi arayan herkes için plotnine paketi, grafik dilbilgisinin Python’daki bir uygulamasını sunar. ggplot2 paketiyle son derece benzer bir sözdizimi ve estetiğe sahiptir ve Python’da verileri görselleştirmeye hemen başlamak isteyen R kullanıcıları için kesintisiz bir deneyim sağlar.
Matematik ve İstatistik Kütüphaneleri
Yerel Python, R gibi bir dizi istatistiksel fonksiyonla yüklü gelmez. Ancak kütüphaneleri bu eksikliği fazlasıyla telafi eder.
NumPy
İlki, birçok diğer temel Python paketini omuzlarında taşıyan güçlü NumPy’dır. Zengin vektörleştirilmiş matematik fonksiyonları seçkisine sahip mükemmel bir dizi (array) işleme kütüphanesidir. Matris işlemelerindeki hızı, belki de yalnızca programlama tarihinin en hızlı dillerinden biri olan Julia ile kıyaslanabilir.
NumPy’nin n-boyutlu dizileri, TensorFlow veya PyTorch gibi diğer önemli hesaplama kütüphanelerinin belkemiğidir. Bu nedenle, NumPy’nin indirme istatistikleri, pandas ve Matplotlib’in toplamından çok daha yüksektir.

Numpy indirme istatistikleri, PyPI Stats sitesinden.
SciPy
Eğer NumPy’de bir fonksiyon bulamazsanız, SciPy cevaptır. Matematik, fizik ve istatistikte çeşitli hesaplama uygulamaları için ayrı alt modüllere sahiptir.
Özel fonksiyonlar modülü, araştırmacılar için temel ve hız optimize edilmiş matematiksel fizik fonksiyonları içerir. optimization modülüyle optimizasyon problemlerini çözebilir; integrate ve fft modülleri ise hesap ve Fourier dönüşümleriyle ilgilenir. linalg modülü, NumPy’nin linalg modülündeki her şeyi ve buna ek olarak daha gelişmiş ve niş doğrusal cebir fonksiyonlarını barındırır. Bu modül, BLAS/LAPACK (doğrusal cebir için standart temel yazılım kütüphaneleri) tarafından mükemmel şekilde desteklenir ve NumPy’den bile daha hızlıdır.
Ayrıca çok boyutlu görüntüleri verimli bir şekilde işlemenizi sağlar. NumPy 2B/3B görüntüler için harikadır, ancak tıp ve biyoloji gibi alanlardan gelen daha yüksek mertebeden görüntüleri kolayca işleyemez. İşte bu noktada SciPy’nin ndimage modülünü kullanabilirsiniz.
Statsmodels
Yukarıdaki paketler istatistikten ziyade daha çok matematik etrafında dönse de, Python statsmodels kütüphanesini de sunar. Çok sayıda istatistiksel modeli tahmin etmenizi, hipotez testleri yürütmenizi ve verileri keşfetmenizi sağlayan fonksiyon ve sınıflardan oluşan geniş bir kütüphanedir.
Regresyon analizi için baştan sona fonksiyonlar ve genelleştirilmiş doğrusal modeller için olgun API’ler bulunur. Zaman Serisi Analizi modülü özellikle kullanışlıdır; zaman serilerini gerçekleştirmek ve görselleştirmek için özel fonksiyonlar içerir.
Diğer modülleri, sağkalım ve süre analizi, parametrik olmayan yöntemler ve çok değişkenli istatistikler için kullanılabilir. R kullanıcılarının memnuniyetine, bahsedilen bu modüllerin çoğu hem fonksiyon yazımında hem de çıktı yazdırmada R benzeri bir sözdizimi kullanır. Salt istatistiksel analiz için statsmodels, NumPy, SciPy ve Matplotlib’in mükemmel bir birleşimidir.
Makine Öğrenimi Kütüphaneleri
R kullanıcılarının Python’u öğrenmekten en çok değer bulabilecekleri alan burasıdır. Python’un makine öğrenimi kütüphaneleri, R’ınkinden çok daha bütüncüdür ve veri ön işleme, özellik mühendisliği, hiperparametre ayarlama, modelleme ve daha fazlası için birçok algoritma ve araç sunar.
Scikit-learn
Bu tür çerçevelerin ilki scikit-learn’dür. Python’daki en popüler makine öğrenimi çerçevesidir ve günümüzde çoğu makine öğrenimi uygulayıcısı tarafından kullanılmaktadır.

Kaggle’ın 2021 Veri Bilimi ve Makine Öğrenimi Durumu Anketi’nden
Scikit-learn, regresyon, ikili ve çok sınıflı sınıflandırma için geniş bir denetimli öğrenme algoritması seçkisine sahiptir. Veri ön işleme, hatlar (pipelines), boyut indirgeme, özellik mühendisliği, özellik seçimi, eksik veri ataması ve kümeleme için özel alt modülleri bulunur.
Çok sayıdaki sınıf ve işlevine rağmen son derece sezgisel ve sade bir API’ye sahiptir. Scikit-learn, Python’un Zen’indeki 20 Python kod tasarım kalıbının tümünü uygulamada dikkate değer bir iş çıkarır.
XGBoost
Eğer scikit-learn’ün bir dezavantajı varsa, bu GPU desteğinin olmamasıdır. Tüm algoritmaları CPU üzerinde çalışır; bu nedenle, insanlar GPU destekli kütüphanelerle daha fazla hesaplama hızına ihtiyaç duyduklarında doğal olarak diğer çerçevelere yönelirler. R kullanıcılarının zaten aşina olduğu bu kütüphanelerden biri XGBoost’tur.
Çekirdeğinde en son teknoloji GPU destekli Gradient Boosted Trees bulunduğundan, denetimli öğrenim görevlerini diğer makine öğrenimi çerçevelerine kıyasla çok daha hızlı ve yüksek performansla çözebilir. Yukarıdaki görsel, Python topluluğunda oldukça popüler olduğunu ve Kaggle’daki tabular yarışmalara hâkim olduğunu gösterir.
LightGBM & Catboost
Benzer iki kütüphane LightGBM ve CatBoost’tur. LightGBM, XGBoost’a kıyasla önemli ölçüde daha az bellek kaynağı gerektirirken, CatBoost hız ve doğruluk avantajları sağlar. Üç gradient boosting kütüphanesinin tümü, Scikit-learn API’sini uygulayabildiği için kullanımları oldukça kolaydır.
Dil Savaşlarının Ötesinde: Modern Veri Bilimci İçin R ve Python
R ve Python farklı avantajlara sahip olsa da, bunu bir “dil savaşı” olarak çerçevelemek veri bilimciler için verimsizdir. DataFramed podcast’indeki son görünümlerinde, “Python and R for the Modern Data Scientist” kitabının yazarları Rick Scavetta ve Boyan Angelov, iki dilli bir veri bilimci olmanın avantajlarından ve modern veri ekiplerinin iki dilli uygulayıcılardan nasıl fayda sağlayacağından bahsediyor.
Podcast boyunca, dil savaşı çerçevesinin temel bir sakıncası olarak R ve Python topluluklarında tek kültürlü düşüncenin yükselişini tartışıyorlar. Tek kültüre ya da “biz ve onlar” zihniyetine karşı en iyi karşı argümanlardan biri “çekiç ve çivi” benzetmesidir — elinizde yalnızca bir çekiç varsa, her şey çivi gibi görünür.
Başka bir deyişle, dil-öncelikli yaklaşım yaratıcılığınızı ve sorunları etkili bir şekilde çözme yeteneğinizi sınırlar. Çözüm-öncelikli bir yaklaşım benimsediğinizde, sorununuzun çözümüne tek bir dilde katı şekilde sunulana bağlı kalmak yerine kavramlar açısından bakmaya başlarsınız.
Hem R’ı hem de Python’u bilmek, birinin diğerine üstün olduğu bağlamlarda her iki dünyanın en iyisini uygun şekilde kullanmanızı sağlar. Örneğin, yazarlar ggplot2 ile veri görselleştirmede R’ın nasıl parladığını ve R Markdown ile Shiny sayesinde raporlama ekosisteminin ne kadar olgun olduğunu, buna karşılık Python’un makine öğrenimi, API’ler ve MLOps’ta nasıl üstün olduğunu vurgular.
Yazarlar, kitapta iki dilin birbirleriyle nasıl iletişim kurabileceğini gösteren parlak bir vaka çalışması sunuyor. RStudio’daki reticulate gibi araçları kullanarak, R içinde Python betiklerini çağırabilir ve Python paketlerini çalıştırabilir, böylece diller arasında nesneleri serbestçe aktarabilirsiniz.
Bir R kullanıcısıysanız, iki dilli bir veri bilimci olmak hiç bu kadar kolay olmamıştı. Python öğrenme hakkında daha fazlası için kapsamlı kaynak koleksiyonumuza göz atabilirsiniz.
