NumPy, Pandas, Matplotlib ve Seaborn Kütüphaneleri
NumPy
NumPy (Numerical Python) bilimsel hesaplamalar için kullanılır. Listelere benzerdir ancak numpy çok daha hızlı performans göstermektedir. Vektörel operasyonları yapmamız kolaylaştırır.(high level)
İlk olarak kütüphaneyi import etmemiz gerekmektedir.
List vs Numpy
Yukarıdaki iki örnekte de aynı işlemleri gerçekleştirdik. Numpy tercih edilme sebebi listelere göre daha hızlı çıktı vermesidir. Bu yüzden çok boyutlu dizilerde, vektörel işlemlerde çalışma imkanı sağladığı için tercih edilmektedir.
Array Oluşturmak
Numpy array özellikleri
ndim - boyut sayısı
shape - boyut bilgisi
size - toplam eleman sayısı
dtype - array veri tipi
Numpy dizisi, diziyi yeniden şekillendirebilme özelliği sunmaktadır. reshape()
np.arange(0,16)
Out: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
np.arange(0,16).reshape(4,4)
Out: array([[ 0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11],
[12, 13, 14, 15]])
Index Seçimi
- ndarray - [rows,columns], “:” işareti ile dizinin bütün satır ve sütunlarını seçebiliriz. [:,:]
a = np.random.randint(15, size = (3,5))
Out: array([ 5, 13, 13, 3, 14])
# Dizinin ilk elemanına ulaşmak
a[0]
Out: 5
# Dizinin son elemanına ulaşmak
a[-1]
Out: 14b = np.random.randint(0, 20, (3, 3))
Out: array([[18, 13, 18],
[17, 7, 17],
[12, 18, 11]])
b[0,1]
Out: 13
b[1:2, 1:2]
Out: array([[7]])
b[1, :]
Out: array([17, 7, 17])
b[0:1, 0:1]
Out: array([[18]])
- Numpy ile iki bilinmeyenli denklem çözümü
2*x0 + 3*x1 = 10
x0 + 5*x1 = 12
Pandas
Veri bilimi projelerinde kullanılır. Numpy’ın gelmişmiş versiyonudur. Numpy dizisinden farklı olarak index sütunları bulunur. Aşağıdaki örnekte görebilirsiniz. Serinin tipini görmek için yine type() fonksiyonunu kullanırız. Pandas serisinin tipi “pandas.core.series.Series” çıktısını verir.
a = pd.Series([1,2,3,4,5])
type(a)
Out: pandas.core.series.Series
a.index
Out: RangeIndex(start=0, stop=5, step=1)
a.dtype
Out: dtype('int64')
a.ndim
Out: 1
# a serisinin değerlerini numpy array olarak döndürür.
a.values
array([1,2,3,4,5], dtype=int64)
- Ayrıca serinin min(), max(), mean(),median(), sum() gibi değerlerini de görebiliriz.
a.min()
Out: 1
a.max()
Out: 5
a.mean()
Out: 3.0
a.median()
Out: 3.0
a.sum()
Out: 15
- Pandas ile Veri Okuma
import pandas as pd
data = pd.read_csv("heart_disease_uci.csv")
Kaggle’da veya UCI Machine Learning Repositery sayfalarında incelemek için binlerce veri seti bulunmaktadır. Veri setine buradan ulaşabilirsiniz.
Veri setini incelemek için başlıca işlemler yapalım.
# ilk 5 değeri gösterir. Parantez içerisine 1,2 yazmamız durumunda o kadar değeri getirir
data.head()
# son 5 değeri gösterir
data.tail()
# boyut bilgisi
data.shape
# veri setindeki bilgileri gösterir.(columns, non-null values, dtype)
data.info()
# index sayısı
data.index
# sütun isimleri
data.columns
# veri setindeki her bir sütunun sayısı, ortalaması, standart sapması, min, max değeri ve çeyreklik değerlerini getirir.
data.describe().T
# eksik değer var mı? True-False döndürür.
data.isnull().values.any()
# her bir sütundaki eksik değerlerin toplamı
data.isnull().sum()
# cinsiyet değişkeni, kadın erkek sayılarını getirir.
data["sex"].value_counts()
Değişken ismi değiştirme
data.rename(columns = {'age': 'yaş'}, inplace = True)
Age değişkenini (sütununu) , yaş olarak değiştirdik. inplace = True argümanı işlemi kalıcı olarak yapmamızı sağlar.
Değişken silme
data.drop("yaş", axis = 1)
data.head()
Aynı şekilde inplace argümanı ile kalıcı olarak “yaş” değişkenini silebiliriz.
Pandas işlemleri
- count : Girdi sayısını verir,
- Groupby : Groupby işlemi vermiş olduğumuz sütun veya sütunlara göre verileri gruplamayı sağlar.
- apply ve lambda genelde birlikte kullanılır ve lambda fonksiyonu veri üzerinde küçük işlemler yapmamızı sağlar.
- concat() fonksiyonu bir veya daha fazla dataframe’i alt alta birleştirmemizi sağlar.
- merge() fonksiyonu daha çok veritabanı tarzı işlemler için daha uygundur. 2 dataframe’i yatay olarak birleştirir.
VERİ GÖRSELLEŞTİRME
Matplotlib
Numpy dizileri üzerine kurulu bir kütüphanedir.
Sütun grafikleri kategorik değişkenleri görselleştirmek amacıyla kullanılır. Yukarıda incelediğimiz heart_disease veri setini görselleştirelim.
data['thal'].value_counts().plot(kind='bar', color = ["red" , "blue", "green"])
plt.show()
- Sayısal değişkenler ise histogram ve boxplot ile görselleştirilebilir.
plt.hist(data["age"], color= "orange")
plt.show()
Seaborn
Veri görselleştirme için kullanılan yüksek seviye bir kütüphanedir.
import seaborn as sns
from matplotlib import pyplot as plt
df = sns.load_dataset("tips")
sns.barplot(x="time",y="tip",data=df)
plt.show()
- Kategorik verileri görselleştirmek için barplot kullandık.
df['day'].value_counts().plot(kind='bar', rot=0, color = ["red", "yellow", "orange", "blue"])
plt.show()
- Sayısal değişkenler için de histogram ve boxplot kullandım.
df["total_bill"].hist()
plt.show()
sns.boxplot(x=ss["total_bill"])
plt.show()
Kısaca temel numpy, pandas işlemlerini göstermeye çalıştım. Ardından temel olarak kullanılan veri görselleştirme kütüphaneleriyle tamamladım. Keyifli okumalar :)
REFERANSLAR