Numpy Kütüphanesi
Herkese merhaba sizlere bu yazımda Numpy ’ ı anlatacağım.
NumPy (Numerical Python) bilimsel hesaplamaları hızlı bir şekilde yapmamızı sağlayan bir matematik kütüphanesidir.
NumPy (Numerical Python), çok boyutlu dizilerle ve matrislerle çalışmamızı sağlayan ve matematiksel işlemler yapabileceğimiz Python dili kütüphanelerindendir.
Numpy ile matematiksel işlemler yapılabilir ve bu işlemler, Python’un dahili dizilerini kullanarak mümkün olana oranla daha verimli ve daha az kodla yürütülür. NumPy paketinin temelinde, ndarray nesnesi vardır. Bu, homojen veri türlerinin n-boyutlu dizilerini kapsar ve birçok işlem performans için derlenmiş kodda gerçekleştirilir. NumPy dizileri ile standart Python dizileri arasında bazı farklar var.
Haydi başlayalım Numpy ı yakından tanımaya;
1) Numpy kütüphanesinin import edilmesi
#kütüphanemizi import ettik ve numpy ı aktif hale getirdik.
import numpy as np
2-)Numpy ile temel işlemler
Öncelikle bir array oluşturalım.
np.array([1,2,3,4,5])output:
array([1, 2, 3, 4, 5])
Tipine bakalım;
type(a)output:
numpy.ndarray
Numpy array ler hangi tip veri olarak verilirse diğerlerini de aynı tip tutar;
#eğer float bir veri veriyorsak hepsini aynı tip olarak algılar numpy tek tiptir.np.array([3.14 ,4 ,2, 13])output:
array([ 3.14, 4. , 2. , 13. ])
Numpy da array tiplerini bizde değiştirebiliriz;
#Elimizdeki array yapısının tipini değiştirebiliriz.np.array([3.14 ,4 ,2, 13],dtype="float32")output:
array([ 3.14, 4. , 2. , 13. ], dtype=float32)
Elemanlarının hepsi 1 olan 3*4 array oluşturalım;
np.ones((4,3))output:
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
Numpy Array (dizi) özellikleri
- ndarray.ndim : Aksis (boyut) sayısını verir. Lineer cebirden bildiğimiz “rank” olarak isimlendirilir.
- ndarray.shape : Dizi kaç boyutlu ise onu verir. Eğer siz n X m matris oluşturdaysanız , aslında bu (n,m) lik bir tuple veri tipinde döndürecektir.
- ndarray.size : Dizideki elemanların sayısını verir. Bu da n*m‘ e eşittir.
- ndarray.itemsize: Dizinin elemanlarının her birisi için byte sayısını verir. Örneğin complex32 için byte sayısı (itemsize = 4 <- 32 / 8). Float64‘ e bakacak olursa itemsize = 8 (64/8). Şu şekilde kullanımı mevcut ndarray.dtype.itemsize
- ndarray.data : Dizinin içindeki elemanlara ulaşmak için kullanıyor ama biz index ile ulaştığımız için bu özelliği kullanmaya gerek duymuyoruz.
- np.linspace():Başlangıç, dizinin hangi sayıdan başlayacağıdır. Bitiş, dizinin hangi sayıya geldiğinde son bulacağıdır. Bir de num, dizinin kaç elemana sahip olacağıdır. np.linspace() metodu başlangıçtan sona num tane sayıyı birbiri arası uzaklık eşit olacak şekilde böler.
- np.random(): İstenilen boyutta bir dizin oluşturur ve bu dizini 0 ve 1 aralığında üretilmiş rastgele ondalık sayılar ile doldurur.
- np.arange() :Python’daki range() fonksiyonuna benzer. Belirtilen başlangıç değerinden başlayıp, her seferinde adım sayısı kadar arttırarak ,bitiş değerine kadar olan sayıları bulunduran bir numpy dizisi dödürür.
Hepsini birer örnekle kod üzerinde görelim;
#0 ile 10 arasında bir array oluşturduk.
np.arange(0,10,1)
Output:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])# 0 ile 10 arasında 3 er artan bir array oluşturduk.
np.arange(0,10,3)
Output:
array([0, 3, 6, 9])# 0 ile 1 arasını 5 eşit parçaya böler
np.linspace(0,1,5)
Output:
array([0. , 0.25, 0.5 , 0.75, 1. ])##ortalamsı 10 standart sapması 4 olan 3,4 lük bir matris
np.random.normal(10,4,(3,4))
Output:
array([[10.77149557, 18.12913504, 14.70405262, 8.50103522],
[ 6.64770129, 11.6555663 , 10.50696761, 15.58477119],
[14.88129633, 17.92318496, 14.99177088, 15.38394759]])#Rastgele bir array oluşturalım
a=np.random.randint(10,size=10)
Output:
array([2, 8, 6, 0, 1, 9, 6, 1, 3, 4])
#Oluşturduğumuz array in boyut sayısına bakalım
a.ndim
Output:
1# Şekline bakıyoruz array in
a.shape
Output:
(10,)#0 ile 10 arasında 3 lük bir matris oluşturuyoruz
np.arange(1,10).reshape((3,3))
Output:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
İki ayrı array i birleştirmek için ;
x= np.array([1,2,3])
y=np.array([4,5,6])
np.concatenate([x,y])Output:
array([1, 2, 3, 4, 5, 6])
İki boyutlu bir array ayırma;
#iki boyutlu array ayırmam=np.arange(16).reshape(4,4)
mOutput:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
Numpy ile ilgili daha fazla kod örneklerine ulaşmak için github hesabıma bakabilirsiniz :)