Bu gün sizlere Python 'ın bazı sayısal(numeric) işlemlerde yetersiz kaldığı durumlarda kullanabileceğimiz bir kütüphane olan NumPy'dan bahsedeceğim. Özellikle bilimsel hesaplamalarda kullanılan bu kütüphane diğer dillere göre(C, C++) çok daha performanslıdır.
NumPy Nedir?

NumPy, Python dilinin bilimsel hesaplamlarda kullanılan bir kütüphanesidir. Numerical Python = NumPy adı burdan gelmektedir. Tek boyutlu array yani vektör, iki boyutlu array yani matris ve arrayler gibi hesaplamalar için özelleştirilmiştir. Yüksek performanslı çalışma imkanı sağlar. Listelerle benzer bir yapısı vardır aralarındaki en büyük fark; verimli veri saklama ve vektörel operasyonlardır. Peki nedir bu verimli veri saklama? NumPy'da verimli veri saklama, bir numpy array i oluşturuğumuzda her eleman için tip bilgisi tutmaz yani sabit/ tek tip veri baskısı vardır ve sadece 1 tane tip bilgisi tutar. Bu da performans açısından avantajlıdır.
NumPy kütüphanesini kullanabilmemiz için öncellikle onu kod yazdığımız sayfaya dahil etmeliyiz. Bunu import numpy as np şeklinde yaparız. Tavsiyem dahil etme işlemlerini sayfanın en başına koymanızdır, hem kodun okunurluğu kolaylaşır hem de karışıklığı önlemiş olursunuz.
NumPy Array(ndarray) Oluşturmak
NumPy array i oluşturmanın bir kaç farklı yöntemi vardır. Bunlardan ilki Python'dan bildiğimiz listeler üzerinden oluşturmak. Aşağıda inceleyelim. type metodu biliyoruz ki değişkenin tipini verir. dizi1 de direk değerleri verdik ve o baskın tipi int seçti eğer baskın değişken tipi belirlemek istersek dizi2 gibi yaparız.
import numpy as np
dizi1 = np.array([1,2,3,4,5])
print(dizi1) #çıktı--> array([1, 2, 3, 4, 5])
type(dizi1) #çıktı--> 'numpy.ndarray'
dizi2 = np.array([1,2,3,4,5], dtype= "float")
print(dizi2) çıktı-->array([1., 2., 3., 4., 5.])
Bir diğer yöntemde sıfırdan ndarray i oluşturmaktır. Bu işlemde kendi içerisinde bir kaç farklı yolla yapılabilir.
- np.zeros(); Elemanların hepsi sıfır olan ndarray oluşturur. np.ones(); elemanların hepsi 1 olan ndarray oluşturur. np.full(boyut, eleman); Girilen boyut kadar elemandan oluşan ndarray oluşturur.
import numpy as np
a = np.zeros(10, dtype= int)
print(a) #çıktı--> array[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
#Yukarıda tipi int 10 tane 0 dan oluşan ndarray oluşturduk.
b = np.ones((3,5))
print(b)
#çıktı--> array([[1,1,1]
[1,1,1]
[1,1,1]])
#Yukarıda 3 satır 5 sutundan oluşan değerleri 1 olan matris oluşturduk.
c = np.full(9,3)
print(c) #çıktı--> array([3,3,3,3,3,3,3,3,3,3])
#Yukarıda 9 değerli ve değerlerin hepsi 3 olan vektör oluşturduk.
import numpy as np
dizi= np.arange(1,15,2)
print(dizi) #çıktı-->array([1,3,5,7,9,11,13])
# 1 ile 15 arası 2 şer 2 şer artan ndarray
import numpy as np
dizi4= np.linspace(1,2,10)
print(dizi4)
#çıktı--> array([1. 1.11111111 1.22222222 1.33333333 1.44444444 1.55555556,1.66666667 1.77777778 1.88888889 2. ])
#1 ve 2 arasında 10 tane değerden oluşan ndarray
import numpy as np
dizi5 = np.random.normal(9, 6, (3,2))
print(dizi5)
#çıktı-->array([[16.10113748 7.15555834]
[ 7.85830339 0.14295859]
[ 7.70021908 15.81057273]])
#ortalaması 9, standart sapması 6 ve boyutu 3x2 lik matris olan ndarray
import numpy as np
dizi6 = np.random.randint(1, 9, (2,2))
print(dizi6)
#çıktı-->array([[3 6]
[8 2]])
# 1 ile 9 arası değerlerden oluşan 2x2 lik matris olan ndarray
NumPy Array(ndarray) Özellikler
ndim: Boyut sayını verir.
shape: Boyut bilgisi verir.
size: Toplam eleman sayısını verir.
dtype: Array veri tipini verir.
import numpy as np
dizi7 = np.random.randint(0,5, (5,5))
print(dizi7)
#çıktı-->array([[4 0 2 2 2]
[1 3 4 4 3]
[2 1 3 2 1]
[4 4 3 0 4]
[4 4 4 3 3]])
print(dizi7.ndim) #çıktı-->2
print(dizi7.shape) #çıktı-->(5,5)
print(dizi7.size) #çıktı-->25
print(dizi7.dtype) #çıktı-->int64