NumPy, Pandas, Matplotlib ve Seaborn Kütüphaneleri

Şevval Yurtekin
5 min readMay 30, 2021

--

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

list
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: 14
b = 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

https://www.veribilimiokulu.com/

--

--