VERİ BİLİMİ İÇİN İSTATİSTİK – I

Sevgili okurlar hepinize tekrardan merhabalar,

Bugün sizlere veri bilimi için önemli olan bazı teori ve dağılımlardan bahsetmeye çalışacağım.

Bahsedeceğim konular “Örnek Teorisi, Betimsel İstatistik, olacak.

ÖRNEK TEORİSİ:

Anakütle parametrelerinin örnek değerleri(örnek istatistikleri) yardımıyla tahmin edilmesine imkan sağlamak modern istatistiğin önemli bir görevidir.(http://debis.deu.edu.tr/userweb//hamdi.emec/%c4%b0statistik-2012-G%c3%bcz/7_%c3%96rnekleme%20ve%20Tahmin%20Teorisi.pdf)

İnternet üzerinden araştırdığımız zaman böyle bir tanım görmek mümkün. Peki bu tanım bize ne anlatıyor ? Python ile bu teoriyi nasıl çalışabiliriz ? Ona bir göz atalım.

Burada nüfüsun ortalama yaşını bulmayı hedeflediğimiz bir veri seti oluşturduğumuzu varsayalım. 5000 kişinin yaşlarını öğrenip kayıt ettiğimizi düşünüyoruz.

Burada öncelikli olarak choice ve seed metodunu anlatmak istiyorum. Choice metodu ingilizcesinden anlaşıldığı üzere seçme işlemini yapıyor. Fakat bizim elimizde 5000 adet veri olduğu için her bu ornek değişkenini çağırdığımızda farklı sonuclar gelmemesi için yani bir kere çekilen 100 adet verinin sabit kalması için seed metodunu kullanıyoruz.

Bu verileri değişkenlere atadıktan sonra mean() metodu ile ortalamalarını alıyoruz ve bu ortalamaların birbirine çok yakın olduğunu görüyoruz. Buradan seçtiğimiz örneklem kitlesinin ortalamaya yakın olduğunu ve başarılı bir iş yaptığımızı söylemek mümkün.

Fakat bu ortalamaları tek bir örneklem kitlesi ile hesaplamak biraz riskli olabilir. Biz bu örneklem sayılarını arttırıp daha kesin sonuçlar elde etmek istiyoruz.

Daha kesin bir sonuç elde etmek için birden fazla (ben burada 10 adet aldım) örneklem seçip bunların ortalamalarını toplayıp örneklem sayısına böldüğümüzde Yukarıda 42.7 olarak bulduğumuz değeri birden fazla örnekle kullanarak 41.04 gibi bir değere indirebiliyoruz.

Bu sayede 5000 kişilik veriyi kullanmak yerine belirli gruplar halinde belirlediğimiz örneklemleri hesaba katında ana kütleye daha yakın sonuçlar bulup uğraştığımız işin sonucunu daha iyi kesin bir şekilde ortaya koyabiliriz.

BETİMSEL İSTATİSTİK:

Bu konuyu anlatırken kullanacağım dataset ‘Seaborn’ kütüphanesi ile birlikte gelen ‘tips’ dataseti olacak.

Daha öncelerde bu veri setini describe() metodu ile bakış yapmıştık.

Her zaman olduğu gibi daha fazlasına ihtiyaç duyduğumuz zaman ne yapacağız? Örnek olarak ben bu veri setinin Standart hatası,aralığı,varyansı,kovaryansı gibi bazı değerleri istiyorsam ne yapmam gerekiyor ?

Bu verileri bulmak için researchpy isimli kütüphaneyi komut istemine !pip install researchpy yazarak indiriyoruz.

Daha sonrasında summary_cont (sayısal değişkenler) metodu ile yukarıda görmek istediğimiz değişkenlerden aralık ve standart hata değerlerini görebiliyoruz

summary_cat metoduyla veri setimizde gördüğünüz gruplanabilecek işlemleri görmemizi daha kolaylaştıran bir metot.

Ekstra olarak kovaryans ve korelasyon bilgilerine seçtiğimiz değişkenlerin sonuna gerekli metotları(.corr ve .cov) yazarak kolay şekilde hesaplamamız mümkün.

PANDAS GİRİŞ 102

Sevgili okurlar herkese merhaba,

Bugün sizlere ‘pandas’ kütüphanesinde kısıtlamalar,iki seriyi birleştirme,groupby özeliiklerini anlatmaya çalışacağım.

Burada işe ilk olarak gerekli kütüphaneleri ekleyerek başladık. Sonrasında ‘m’ isminde bir dizi oluşturup onu df adında bir DataFrame öğesine çevirdik. Bu şekilde yaparak ‘pandas’ kütüphanesi ile istediğimiz gibi veriyle oynamak istememiz. df[‘var1’] komutu ile ise ilk sütundaki verileri bir göz atmak istedik.

Yukarıda oluşturmuş olduğumuz df adında DataFramemiz altta ise bir kısıtımız var. İsterseniz bu kısıtı yakından inceleyelim.

Bu parantez içlerini ayırarak okumak bize fayda sağlayacaktır. Burada ilk etapta parantezlerin içine bakalım. df[‘var1’] ile var1 sütununu seçmiş olduk. Daha sonrasında bu sütündaki elemanları 15den büyüklüğüne göre bir kısıtlama yaptık. En dıştaki df ifadesi ile bu DataFrame içindeki sütunu göstermek istediğimizi söylemiş olduk.

Yukarıdaki kod bloğuna baktığımızda birden fazla kısıtlamayı parantezler yardımı ile kullanabileceğimizi gösteriyor.

DATAFRAME BİRLEŞTİRME:

Bu kısıma geldiğimiz zaman ben ekstra olarak bir DataFrame oluşturmak yerine hali hazırdaki df öğemin içindeki her değere 50 ekleyerek df2 adında bir DataFrame daha oluşturdum.

concat metodu:

Bu metod ile birlikte 2 adet DataFrame’i birleştirebiliyoruz. Fakat burada gördüğünüz üzere index sütununda bir sıkıntı var. Gelin bu sıkıntıyı nasıl düzelteceğimize bakalım.

Çok basit bir parametre’ye False değeri vererek index işini çözmek mümkün.

GROUPBY:

İsminden anlaşılacağı üzere gruplama işleminden bahsediyorum. Gelin bu gruplama nasıl oluyor ona bakalım.

Yukarıda sözlük(dictionary) kullanarak bir DataFrame oluşturma işlemi görüyorsunuz. Fakat grupların 2 şer adet değeri var. Bazı veri setlerinde 100 200 hatta 1000 adet değeri olabilir bir grubun. Bu değerlerle tek tek işlem yapmak performans açısından çok verimli olmayabilir. Burada olaya groupby metodu el atıyor. Son satırda bu grupları gruplayıp(biraz değişik bir cümle oldu) ortalamalarını mean metodu ile daha kolay bir şekilde alabiliyoruz.

Bugün sizlere pandas kütüphanesindeki bazı özellikleri anlatmaya çalıştım.

Okuduğunuz için teşekkürler 🙂

TİTANİC YORUMLAYALIM

Sevgili okurlar herkese merhaba,

Bugün sizlere ‘Seaborn’ kütüphanesi içinde olan ‘titanic’ veri setini yorumlamaya ve aynı zamanda kullanılan grafik metotlarını anlatmaya çalışacağım.

İlk olarak kullanmış olduğum veri setini paylaşmakla başlayalım: https://github.com/mwaskom/seaborn-data/blob/master/titanic.csv

Veri setini yorumlamaya başlamadan önce değişkenleri anlamak, hangi birimde olduğunu kavramak gibi bazı basit işlerimiz var.

Burada ‘seaborn’ kütüphanesini import ettim. Titanic adlı veriyi load_dataset() metotu ile çağırdım ve görmek için ‘head’ metodu ile ilk 5 adet veriye bir göz attım.

Burada bazı başlıklara bir göz atalım.

  • Survived sütunu altında insanların yaşıyor mu yaşamıyor mu durumu
  • Sex sütunu ile cinsiyetlerini
  • Age ile yaşlarıını
  • Class sütunu ile hangi sınıfta yolculuk yaptıklarını görüyoruz.

Burada veri setini yorumlamaya başlamadan önce sizlere naçizane tavsiyem. Veri setini describe() metodu ile bir incelemeniz. Burada önemli değerler görebilirsiniz.

Survived kısmından başlayacak olursak bu gemideki kişilerin %38 inin hayatta kaldığını,gemideki insanların yaşlarının ortalamasının 29 olduğu gibi değerleri görebiliriz.

Bir veri setini kendi kendimize incelerken sorular sormak çok önemli olduğunu düşünüyorum. Örneğin bu set için ‘Kaç erkek,kaç kadın var?’,’Hayatta kalan kaç kişi var?’ tarzında bu soruları çoğaltabiliriz.

İkinci iş olarak yukarıda sorduğum sorulara cevap vermek oldu. Burada insanların cinsiyetinden, gemiye bindikleri yerlerde kaç kişi olduğuna kadar bir veri elde ediyoruz.

Buraya kadar veri setini anladık,ufak bikaç yorum yaptık. Şimdi bu yorumları biraz daha görsele döküp anlaşılacak şekle getirmeye çalışalım.

SORU1: Cinsiyetlere göre gemiden kurtulan kişilerin karşılaştırılması.

Bar plot grafiğe bakarak gemiden kurtulan insanların ortalamasının daha çok kadınların olduğunu görebiliyoruz. İlk sorudan sonra aklıma bir soru daha geldi.

SORU2 :Bu kurtulan insanların satın almış oldukları kamaranın lüksiyeti nedir?

Bar plot grafiğine ‘hue’ parametresiyle ‘class’ isimli değişkeni eklediğim zaman, kurtulan kadınlarda birinci ve ikinci sınıf arasında pek fark olmasada erkekler tarafında kadınlara nazaran daha büyük bir fark olduğunu görebiliyoruz. Bu gemiden canlı olarak kurtulan insanların daha zengin olduğu kanısına varmak için çokta bişeye gerek yok gibi gözüküyor.

SORU3:Peki bu insanların ödemiş olduğu bilet paralarının (bence zenginlik göstergesi) yaşadıkları şehire veya cinsiyetlerine bir bağlantısı var mı? Gelin ona bakalım.

Bu soruyu sormak için Boxplot grafiğinin yararlı olacağını düşündüm çünkü bu grafik bize kutuların üzerindeki çizgiler sayesinde ortalamalarını, en yüksek,en düşük değerlerini,aykırı değerlerini görebiliyoruz.

Grafikte Cherbourg adlı şehirden gemiye binen insanların diğer şehirlere göre daha çok para verdikleri görülüyor. Tamam bu insanlar çok fazla para vermişler fakat gemide sahip oldukları kamara sınıfları nelerdir ? Burada bakın grafiği incelerken bir soru daha soruyoruz kendimize. Bunun cevabını vermeye çalışalım.

SORU 4: Şehirlere göre para veren insanların satın aldıkları sınıflar.

Bu grafikte ‘First Class’ olarak tabir edilen en iyi yerleri Cherbourg’dan binen insanların aldıkları görülüyor.

Cherbourgdaki insanların keyfine düşkün olduklarını söylemek yanlış olmaz.

Tabiki bir veri setinden daha fazla yorum çıkarabiliriz. Burada ben sadece olaya nasıl yaklaşmamız gerektiğini, nasıl yorumlayabileceğimizi anlatmaya çalıştım.

Diğer yazılarda görüşmek üzere,hoşçakalın. 🙂

PANDAS GİRİŞ 101

Sevgili okurlar hepinize merhaba,

Bugün sizlere Veri Bilimi için önemli olan bir kütüphaneden bahsetmeye çalışacağım.

Başlamadan önce ‘pandas’ kütüphanesini ne için kullandığımızı anlamaya çalışalım.

İlk bakışta veriyi anlamak gerçekten zor hatta imkansız diyebiliriz. Burada pandas devreye giriyor ve bu veriyi bize daha okunabilir şekilde sunma imkanı sağlıyor.

Tabiki sadece veriyi okunabilir kılması değil, veriyle işlemler yapabilme gibi imkanlarda sunuyor. Nasıl kurulduğuna ve neler yapabildiğimize bir göz atalım.

KURULUM:

Komut istemini açıp ‘pip install pandas’ yazıp kütüphaneyi indirebiliriz.

İMPORT ETME İŞLEMİ:

Projemizin başlangıç kısmına ‘import pandas as pd’ olarak yazıp ‘pd’ anahtar kelimesini kullanacağımızı söylüyoruz.

SERİ OLUŞTURMA VE BAZI ÖZELLİKLER:

Pandas’ı kurduk ve projemize import ettik. Sıra pandas Serisi oluşturmaya geldi.

İlk satırda pd.Series() metodu ile Pandas kütüphanesi içinde bir seri oluşturmak istedik ve bir dizi gönderdik. Bunu gönderdikten sonra ikinci satırda baktığımızda sonucun dizi olarak(satır şeklinde) değil sütunlu bir şekilde geldi.

Bu serinin özelliklerine bakmak gerekirse:

dtype özelliği ile serinin hangi veri tipinde olduğunu görüyoruz(int64)

size özelliği ile serinin kaç elemanı olduğunu gösterir (4 adet elemanı var)

ndim özelliği ile serinin kaç boyutta olduğunu gösterir (Bizim gönderdiğimiz seri tek boyutlu olduğu için 1 diyor)

values özelliği ile serinin içindeki değerleri gösteriyor.

index özelliği ile bir üst satırdaki serinin değerlerinin solundaki sütunu kast ediyor(0dan 4 e kadar şeklinde 4 dahil değil)

SEÇME İŞLEMİ:

Bazen yaptığımız işlerde serinin bir yerinden bir yerine kadar seçmemiz gerekebiliyor. Bu seçme işlemi nasıl yapılıyor gelin ona bir göz atalım.

‘numbers’ isimli bir dizi tanımladım ve bu dizinin içine 1 den 14 de dahil olmak üzere değerler verdim. İlerleyen süreçlerde benim bu dizideki sadece 8 tane değere ihtiyacım oldu. Bende ikinci satırdaki işlemi tanımlayıp 0’dan 8 de dahil olmak üzere 8 adet değeri seçebildim.

Peki benim bu aralıktaki 3 farkı olan sayılara ihtiyacım olduğu zaman nasıl yapabilirm ? Bununda cevabını hemen verelim.

Burada ekstra olarak bir adet daha iki nokta koyup (:) artış sayısını yazmamız yeterli.

DATAFRAME:

Pandas kütüphanesinde seri oluşturmuştuk, fakat görüntüsü bu şekilde olmamıştı. Burada pd.DataFrame() metodu ile dataframe oluşturup çok boyutlu verilerle daha kolay bi şekilde çalışabiliyoruz.

LOC ve İLOC:

Seçim işlemini Seriler üzerinde nasıl yapacağımızı görmüştük, peki iş DataFramelere(DF) gelince nasıl bir yol izlememiz gerekiyor bunu inceleyelim.

LOC metoduna geldiğimizde bu metod index mantığı ile seçim yapmaz yukarıda görüldüğü üzere 0dan başlayıp 3 de dahil olmak üzere bütün satırları alır

İLOC metoduna geldiğimizde bu metod index mantığı ile seçim yapar 0dan 3 e kadar 3dahil edilmez. Burada e kadar kısmı çok çok önemli.

Ekstra olarak loc metodu ile indexleri string olan değerleride seçebilirsiniz [‘A’:’D’] A dan D de dahil olmak üzere seçim yapabilirsiniz. Fakat iloc metodunda bu çok mümkün değil.

Evet sevgili okurlar buraya kadar Pandas kütüphanesine güzel bir giriş yaptık. Yazıların devamı için takipte kalın 🙂

VERİ OKURYAZARLIĞI NEDİR?

Sevgili okurlar tekrardan merhabalar,

Bugün sizlere Veri okuryazarlığından bahsetmeye çalışacağım.

Günlük hayatımızda artık en önemli şeyin altın,dolar gibi parasal kaynakların değil daha çok verinin daha ön planda olduğunu duyup görüyoruz.

Peki bu veri nedir ? Nasıl okunmalı ? Hangi terimler bilinmeli? Ne şekilde değerlendirilmeli? İsterseniz gelin başlayalım.

İlk olarak Veri Okuryazarlığına değinmek istiyorum: Basit şekilde veriyi tanımlayabilme,okuyabilme ve grafiğe dökebilme işlemidir.

Peki bu kişi ne gibi teknikler kullanır?

POPÜLASYON VE ÖRNEKLEM:

Popülasyon verilerin tamamının oluştuğu ana kitledir. Bu ana kitlenin hepsini yorumlamak tabiki bizleri yorucak ve gereksiz olacaktır. Bu yüzden dolayı bu ana kitlenin içinden ufak bir örnek alarak bunlar üzerinden gerekli değerlendirmeler yapmak çok daha verimli olacaktır.

GÖZLEM BİRİMİ:

Popülasyon ve örneklemi anlattıktan sonra ‘gözlem birimini’ es geçmeyelim ve kısaca bahsedelim. Bu birim araştırmamız sırasında incelemiş (veri toplamış) olduğumuz her kişidir. Örnek olarak röportaj yaptığımız her kişi dememiz doğru olur.

DEĞİŞKEN TÜRLERİ:

KATEGORİK DEĞİŞKEN:

Değerlerinin string olarak tanımlayabileceğimiz değişkenler diyebiliriz.

NOMİNAL:

Sınıflar arasında fark olmadığı zaman kullandığımız değişkenlerin bütününün adıdır. Örneğin cinsiyeti özelliğini bu sınıfın içine dahil edebiliriz.

ORDİNAL:

Sınıflar arasında fark olduğu zaman kullandığımız değişkenlerin bütününün adıdır. Örnek olarak rütbeleri bu sınıfın içine dahil edebiliriz.

SAYISAL DEĞİŞKEN:

Adındanda anlaşılacağı üzere sayısal ifadelerin kullanıldığı değişkenlerdir.

ARALIK:

Başlangıç noktasını sıfır olmayan değerleri kapsayan ölçek türü oranıdır.. Örnek olarak sıcaklığı verebiliriz.

ORAN:

Başlangıç noktası sıfır olan sayısal değişkenlerin ölçek türü oranıdır.

DAĞILIM ÖLÇÜLERİ

DEĞİŞİM ARALIĞI:

Veri setimizi en küçükten en büyüğe doğru sıraladığımızda, en büyük ile en küçük arasındaki farktır.

STANDART SAPMA:

Aritmetik ortalamadan olan sapmaları bulmamıza yarayan bir ölçüm aracıdır.

VARYANS:

Sapmaların ortalama değerini ölçmek için kullanılır.

ÇARPIKLIK:

Yaptığımız dağılımın simetrik olup olmadığını kontrol etmek için kullanırız

NUMPY GİRİŞ 102

Sevgili okurlar merhaba,

Bir önceki yazımda sizlere Numpy kütüphanesinin ne işe yaradığını ve bikaç özelliğini dilim döndüğünce anlatmaya çalıştım. Bu yazımda ise kalan özellikleri sizlere tanıtmaya devam edeceğim.

SIFIR VE BİRLER(ones and zeros):

Bu iki özellik bizim sadece sıfır ve bir olarak bir dizi oluşturmamızı sağlıyor. Bu sıfır ve birler veri setinde boş olan (n/A) olan değerleri doldurmamıza yarıyor ve işlerimizi daha kolaylaştırıyor.

İsterseniz parametre olarak ‘dtype’ kullanıp istediğiniz veri tipi şeklinde tutabilirsiniz.

FULL:

Bu fonksiyonun amacı bütün bir diziyi tek bir değer ile doldurmak. Burada (3,5) ile kast ettiğimiz olay ise 3 satır 5 sütün olması sonrasındaki 3 ise bu satır ve sütunları hangi değer ile dolduracağımızdır.

ARANGE VE LİNSPACE:

***** olarak koymuş olduğum fonksiyonlar çok fazla kullanılmaktadır.

ARANGE:

Burada arange fonksiyonunu ‘e kadar’ olarak anlayabiliriz. Parantez içini nasıl okumamız gerektiğine bir bakalım. 0’dan 31’e kadar git (31 dahil değil) ama üçer üçer git.

LİNSPACE:

Bu fonksiyondaki amacımız ise parantez içini okumaya çalışırsak şöyle: 0 ile 1 arasını 10 eşit parçaya böl.

RANDOM NORMAL VE RANDOM RANDİNT:

RANDOM NORMAL:

Bu random normal fonksiyonunda biz istediğimiz bir ortalama ve standart sapma veriyoruz. Parantez içindeki 10 ortalama değeri 4 ise standart sapmayı temsil ediyor. Diğer parantez içindeki 3 ve 4 ise bu dizinin 3 satır ve 4 sütündan oluşacağını belirtiyor.

RANDOM RANDİNT:

Biz rastgele bir matris oluşturmak istediğimiz zaman ise random.randint metodunu kullanıyoruz. Bu metotdaki parantezleri açıklamak gerekirse (0,10) kısmı 0 ile10 arasında (10 dahil değil)random değer oluşturuyor. Diğer (3,3) parantezi ise daha önce açıkladığım gibi 3 satır ve 3 sütündan oluşacağını belirtiyor.

 

Numpy kütüphanesinin çeşitli metotlarını göstermiş olduğum yazımda sona gelmiş bulunmaktayım. Okuduğunuz için teşekkürler. 🙂

 

NUMPY’A GİRİŞ 101

Sevgili okurlar uzun bir aradan sonra hepinize merhaba.

Bugün sizlere ‘Veri Bilimi’ dünyasının sıkça başvurduğu Python kütüphanesi olan ‘Numpydan’ bahsetmeye çalışacağım.

Numpy’ı incelemeye başlamadan önce isterseniz neden ‘Python’ dilinin içindeki bazı komutlar yerine ayrıca bir kütüphane indiriyoruz isterseniz bunu açıklamakla başlayalım.

  1. Numpy dizilerinde Pythondaki gibi ayrı ayrı tip tutmak yerinde bu tipleri teke indiriyor(Tipten kasıt ‘int,str,float vb’)
  2. Yapacaklarımızı iki,üç veya daha fazla boyuta taşıdığımız zaman işlemlerimizi oldukça kolaylaştırması.
  3. Komplike matematiksel işlemleri çok hızlı şekilde yapabilmesi.(Vektör,i’li j’li işlemler,integraller,vs…)

Öncelikle Numpy’ı nasıl kuracağımız konusu ile başlamak istiyorum.

  • ‘Komut istemi’ veya halk arasında ‘cmd’ olarak bilinen uygulamamızı açıyoruz
  • Açılan siyah ekranda ‘pip install numpy’ yazıp kurmasını bekliyoruz.

Buraya kadar gayet güzel bir şekilde Numpy’ı ne için kullandığımızı ve nasıl kuracağımızı öğrendiğimize göre yavaş yavaş uygulamalarına geçelim

 

İlk olarak bu kütüphaneyi programımızın içine dahil etmemiz gerekiyor ve bunu ‘import numpy as np’ komutu ile gerçekleştiriyoruz. Burada yazmış olduğumuz kodu açıklamak gerekirse ben Numpy adlı kütüphaneyi programımın içine dahil ediyorum ve her seferinde uzun uzun ‘numpy’ yazmak yerine kısaltılmış şekli olan ‘np’ kullanmak istediğimi belirtiyorum.

Dilerseniz uygulamaya yavaştan geçelim.

Dizi Tanımlama İşlemi:

Numpyda dizi nasıl tanımlanıyor ona bir göz atalım.

Burada ilk olarak import işlemimizi yaptık ve daha sonrasında ‘deneme’ isimli bir dizi oluşturup içine ‘1,2,3,4,5 ve emre’ değerlerini atadık ve ondan sonra programımızın bu diziyi hangi tip olarak tuttuğunu ‘type’ fonksiyonuyla sorguladık. Bu sorgulama sonucunda bu dizinin ‘list’ olarak tutulduğunu görmüş olduk.

Buraya kadar her şey Python’un kendi sistemi üzerinden yapıldı. Daha sonrasında ‘a’ isimli bir değişken tanımlayarak ‘deneme’ adlı diziyi np.array() komutu ile numpy arrayine (numpy dizisi) çevirdik ve daha sonra a isimli değişkeni görmek istediğimizde bize array([…….]) şeklinde bir çıktı vermiş oldu.

Numpy dizisi oluşturmanın bir başka yolu ise direkt olarak np.array() komutunu kullanıp içine son satırda görmüş olduğunuz gibi bir dizi yazmakta olabilir.

Numpy’ın verimli olmasının bir sebebi ?:

Yukarıda neden python varken numpy kullanıyoruz sorumun 1. özelliğini daha iyi açıklamak için şu örneğe bir göz atalım:

Burada iki farklı olacak şekilde dizi tanımladım. Deneme isimli dizimin içinde ‘float’,’integer’ ve ‘string’ olmak üzere 3 çeşit veri tipinde eleman var. Fakat işler karmaşıklaşmaya başladığı zaman 2,3 boyutlu dizilere geçtiğimiz zaman işleri kolaylaştırmak ve bellek kullanımını azaltmak için bu elemanları tek veri tipine indirmek isteyebiliriz. Burada numpy ile işlerimizi kolaylaştırabiliyoruz.

İkinci diziyi oluşturduğum zamanda içinde ‘float’ tipinde elemanlar söz konusu fakat bu kütüphanenin bize vermiş olduğu güzel bir özellik ile bu elemanları sadece ‘integer’ şeklinde tutabiliyoruz ve belleğimizi bi yerde ‘float’ bir yerde ‘integer’ değer tutup gereksiz şekilde dolmasını engellemiş oluyoruz.

Numpy kurulumunu ve mantığını anlatmaya çalıştığım yazının burda sonuna gelmiş bulunuyoruz. Daha fazlası için takipte kalmayı unutmayınız 🙂

SELENIUM İLE YOUTUBEDEN VERİ ÇEKME

Sevgili okurlar hepinize merhaba,

Bugün sizlere selenium kütüphanesi ile internete bağlanma ve internetten veri çekme işlemlerini göstereceğim.

İsterseniz başlayalım:

İlk önce selenium’u bilgisayarımıza indirmemiz gerekiyor.

  •  Başlat menüsünü açıp cmd yi aratıyoruz ve cmd’ye ‘pip install selenium’
  • yazıyoruz

Kütüphanemiz indikten sonra kullandığımız editörü açıyoruz ve kodlamaya başlıyoruz.

Kodlamaya başlamadan önce tabiki kullanacağımız kütüphaneleri import etmemiz gerekiyor.

Burada yaptığım işlemi birazcık anlatmaya çalışayım.

  1. Satırda import ettiğim selenium’un webdriver modülü ile kullanacağım tarayıcıyı seçme imkanı tanıyorum.
  2. Satırda ise arama çubuğuna birşey yazdırmak istediğim zaman “ileri” anlamına gelicek olan “enter” veya herhangi bir tuşu atamak için kullandım.
  3. Satırda ise bu işlemler benim görmek istediğim hızda olması için time modülünü kullandım.-8.Satırda “driver” adında bir değişken tanımladım ve bu yapıcağım işlemlerin hangi tarayıcıda yapılacağını söyledim.

9.Satırda kolay kullanım açısından gitmek istediğim urlyi bir değişkene atadım

10.Satırda ise değişkene atamış olduğum urlye gitmek istediğimi söyledim.

12.Satıra geldiğimizde ise “search” adlı değişken kullanıp yukarıda seçmiş olduğum tarayıcı olan                 “Chrome” içinde istediğim sitenin(yani youtube)içindeki istediğim bir xpath’ e gitmesini istedim.               Burada xpath’i bulmak için gitmek istediğiniz siteye gidip işlem yapmak istediğiniz yerde “Sağ                   Tık–> İncele” yapmalısınız.

            Açılan inceleme penceresinde aşağıda görmüş olduğunuz “MAVİ” olan yere “Sağ Tık –> Copy —           > Copy xpath” işlemini yaptığınız anda 12. satırda parantez içinde olan yolu almış olacaksınız.

            14. Satıra geldiğimizde “send_keys(“Türkiye”)ile aratmak istediğimiz metni yazdırıyoruz.

16.Satırda “sende_keys(Keys.ENTER)”ile yazdığımız metini aratma için “enter” tuşuna                                  basıyor.Tabiki arama çubuğununda xpathini bulup “click” işlemi yaptırmanız mümkün.

          18.Satıra geldiğimizde; tamam arama çubuğunun xpath ini bulduk fakat almak istediğimiz                     videolarında bir ismi ve dolayısıyla bir xpath’i var.

O yüzden dolayı yukarıda yapmış olduğumuz xpath kopyalama işlemini herhangi bir videonun           başlığına gelip aynı şekilde tekrarlamalıyız

20.satıra ve son işlemimize geldiğimizde “result” içindeki her bir başlığı yazdırıyoruz

Ve bu şekilde karşımıza videoların başlıkları geliyor.

 

ÖNEMLİ NOKTA:

19.Satırda dikkat ettiyseniz “elements” kullandık çünkü karşımıza birden fazla başlık gelecekti, eğer “element” kullansaydık sadece 1 adet başlık gelecekti.

 

Okuduğunuz için teşekkür ederim.

Saygılar…

 

 

 

PYTHON İLE SİTEDEN VERİ ÇEKME

Sevgili okurlar hepinize merhaba,

Bugün sizlere Python ile bir websitesinden nasıl veri çekebiliriz,hangi kütüphaneleri kullanmamız gerekir,onu anlatmaya çalışacağım.

Öncelikle kullanacağımız kütüphaneleri yazarak başlamak istiyorum:

  • Requests
  • BeautifulSoup4

Kullanacağımız kütüphaneler bunlar. İsterseniz bunları nasıl yükleyebileceğimizle başlayalım.

 

  1. Başlangıç çubuğuna “cmd” yazıp sağ tıklayıp yönetici olarak çalıştırınız.
  2. Açılan ekranda “pip install beautifulsoup4” yazınız

4.Aynı şekilde requests kütüphanemizi yüklemek içinde cmd’yi açıp “pip install requests” yazıyoruz ve ufak bir indirme işleminden sonra yüklenmiş oluyor.

ŞİMDİ UFAK UFAK BİR SİTEDEN VERİ ÇEKME İŞLEMİNE GEÇELİM

Benim veri çekeceğim site Türkiye’nin en büyük şirketlerinin sıralaması olan https://www.capital.com.tr/listeler/capital-500sitesi

Başlamadan önce bu yüklemiş olduğumuz kütüphaneleri kodumuza eklememiz gerekiyor.

import ile kütüphanelerimiz içindeki komutları kullanmak istediğimizi belirtiyoruz.

İlk olarak burada gördüğünüz üzere veri çekmek istediğimiz siteyi “url” kolaylık olması açısından url adında bir değişkene atadım.

İkinci olarak ise yüklemiş olduğum requests kütüphanesi ile kullandığım “get” komutu ile bu siteden veri çekmek istediğimi belirttim

Requests ile ben verileri çektim fakat benim ihtiyacım olan şey web sitesinin kaynağı olduğu için “html_icerik” değiskeniyle birlikte web sayfasının kaynağını alıyorum.

En sonda görmüş olduğunuz “soup” değişkeni ile ise benim bu websiteden çekmiş olduğum veriyi parçalamak istediğimi belirtiyorum.

Bu görmüş olduğunuz ss lerden alttaki veriyi çekmiş olduğum sitenin “sayfa kaynağı”dır. Sayfa kaynağına ulaşmak için sitenin boş bir yerinde sağ tık yapıp sayfa kaynağını görüntüle diyebilirsiniz.

Kodun bu kısmında “name”,”city”ve”working” adında 3 adet değişkenim var. Bunları beautifulsoup4’ün komutu olan “find_all” ile çekiyorum.

Burada “find_all” komutundan sonra neye göre yazdığımızı şöyle açıklayayım.

soup.find_all(“mavi_ile_çizilen_yer”,{“kırmızı_ile_çizilen_yer”:”siyah_ile_çizilen_yer”})   diyebiliriz.

Son olarak bir for döngüsü içinde belirlemiş olduğum “i,j,k” değişkenlerini “text”ine eşitleyip format ile yazdırıyorum.

Son olarak ise böyle bir çıktı ile karşılaşıyoruz.

 

Okuduğunuz için çok teşekkürler.

Python’la kalın….