Python’daki sayısal,bilimsel hesaplamaları,istatistiksel hesaplamaları hızlı bir şekilde yapmamızı sağlayan kütüphanedir. Python’ın bazı numerik işlemlerde yetersiz kaldığı durumlar için geliştirilmiştir. Veri manipülasyonu için yani veri ön işlemede kullanılır. Arrayde / Çok boyutlu arrayler ve matrisler üzerinde hızlı bir şekilde çalışır.
Listelere benzer bir yapısı bulunmaktadır. Fakat daha verimli veri saklama ve vektörel çalışma imkanı sağlamaktadır. Veri saklama alanını tanımlarsak; pythonda tanımlanan her değişken birbirinden farklı değişken türünde olabiliyor. numPy’da tüm değişkenler ndarray tipinde tutulmaktadır.Dolayısıyla farklı farklı değişken tiplerini tek bir değişken tipine zorlayıp performanısını yüksek tutmasını sağlıyor.Yani bu işleme de tip zorlaması deniliyor . Aslına bakılırsa çok da işe yarayacak bir kısım farklı açılardan bakarsak bir değişken programın bazı alanlarında string bazı alanlarında integer olarak sürekli program içerisinde tip dönüşümleri yapıyoruz Numpy tek bir tipte tuttuğundan dolayı tür dönüşümü de kullanamıyoruz.Kodlama kısmında da geliştiriciye kolaylıklar sağlıyor ufak bir örnekle pekiştirelim.
Arraylerde Temel İşlemler:
#Python Code
liste1=[1,2,3,4]
liste2=[4,4,4,4]
liste12=[]
for i in range(0,len(liste1)):
liste12.append(liste1[i]*liste2[i])
print("Python Listesi",liste12)
#numPy Code
import numpy as np
npListe1=np.array([1,2,3,4])
npListe2=np.array([4,4,4,4])
npyeniliste=npListe1*npListe2
print("numPy Listesi",npyeniliste)
#Çıktı
Python Listesi [4, 8, 12, 16]
numPy Listesi [ 4 8 12 16]
Code language: PHP (php)
import numpy as np
npListe1=np.array([1,2,3,4])
print(type(npListe1))
#Çıktı
<class 'numpy.ndarray'>
Code language: PHP (php)
import numpy as np
npListe1=np.array([1.2,2,3,4])
print(npListe1)
#Çıktı
#(1 değişken double olduğundan bütün değişkenler double kabul edildi)
[1.2 2. 3. 4. ]
Code language: PHP (php)
import numpy as np
npmatris=np.ones((2,2),dtype=int)
print("2 satır 2 sutun sadece 1 lerden oluştu\n",npmatris)
Code language: JavaScript (javascript)
2 satır 2 sutun sadece 1 lerden oluştu
[[1 1]
[1 1]]
Code language: CSS (css)
import numpy as np
npmatris1=np.full((3,7),5)
print("3 satır 5 sutun sadece 5 lerden oluştu:\n",npmatris1)
Code language: JavaScript (javascript)
3 satır 5 sutun sadece 5 lerden oluştu:
[[5 5 5 5 5 5 5]
[5 5 5 5 5 5 5]
[5 5 5 5 5 5 5]]
Code language: CSS (css)
import numpy as np
npmatris2=np.arange(0,16,2)
print("0'dan başlayıp 16'e kadar 2'şer atış\n",npmatris2)
Code language: JavaScript (javascript)
0'dan başlayıp 18'e kadar 2'şer atış
[ 0 2 4 6 8 10 12 14 16]
Code language: PHP (php)
import numpy as np
npmatris3=np.linspace(0,1,5)
print("0 ile 1 arasında 5 adet sayı üret\n",npmatris3)
Code language: JavaScript (javascript)
0 ile 1 arasında 5 adet sayı üret
[0. 0.25 0.5 0.75 1. ]
Code language: CSS (css)
import numpy as np
npmatris4=np.random.normal(10,5,(4,4))
print("10 ortalamalı 5 st. sapmalı 4x4 Matris\n",npmatris4)
Code language: JavaScript (javascript)
10 ortalamalı 5 st. sapmalı 4x4 Matris
[[ 7.09812949 13.23250019 10.71056626 7.85970195]
[10.92624171 13.11536036 8.66235382 14.7865236 ]
[12.46066552 4.32482555 7.62573525 10.74898306]
[12.3874045 4.09887809 19.66355742 13.63509518]]
Code language: CSS (css)
import numpy as np
npmatris5=np.random.randint(0,5,(3,3))
#npmatris5=np.random.randint(10,size=10)
print("0 dan 5' e kadar random 3x3 Matris\n",npmatris5)
nprnd=np.random.randint(10,size=10)
print("10'a kadar 10 elemanlı tek botlu dizi\n",nprnd)
Code language: PHP (php)
0 dan 5' e kadar random 3x3 Matris
[[3 2 1]
[4 0 4]
[2 0 2]]
10'a kadar 10 elemanlı tek botlu dizi
[4 2 0 8 4 9 4 5 8 8]
Code language: PHP (php)
import numpy as np
nprnd=np.random.randint(10,size=10)
print("Boyut bilgisi\n",nprnd.ndim)
print("Boyut ve eleman bilgisi\n",nprnd.shape)
print("Eleman sayısı bilgisi\n",nprnd.size)
Code language: PHP (php)
Boyut bilgisi
1
Boyut ve eleman bilgisi
(10,)
Eleman sayısı bilgisi
10
nprndmatris=np.random.randint(10,size=(3,3))
print("10'da kadar random 3x3 matris\n",nprndmatris)
print("Boyut bilgisi\n",nprndmatris.ndim)
print("Boyut ve eleman bilgisi\n",nprndmatris.shape)
print("Eleman sayısı bilgisi\n",nprndmatris.size)
print("Tipi:",nprndmatris.dtype)
Code language: PHP (php)
10'da kadar random 3x3 matris
[[3 0 9]
[9 9 5]
[6 2 1]]
Boyut bilgisi
2
Boyut ve eleman bilgisi
(3, 3)
Eleman sayısı bilgisi
9
Tipi: int32
import numpy as np
npmatris=np.arange(1,5).reshape((2,2))
print("Yeniden şekillendirme:\n",npmatris)
print("Boyut:",npmatris.ndim)
#1'den 5'e kadar olan sayıları 2x2 matrise çevirdi
Code language: PHP (php)
Yeniden şekillendirme:
[[1 2]
[3 4]]
Boyut: 2
Code language: CSS (css)
import numpy as np
array1=np.array([[1,2,3],[5,6,7]])
print("Birleştirme:\n",np.concatenate([array1,array1],axis=0))
#axis=0 satır 1 sutun birleştirme
Code language: PHP (php)
Birleştirme:
[[1 2 3]
[5 6 7]
[1 2 3]
[5 6 7]]
Code language: CSS (css)
import numpy as np
array1=np.array([15,1,2,5,8,10,5,6])
print("Ayırma:",np.split(array1,[3,5]))
#Değişkene atama işlemi
bolum1,bolum2,bolum3=np.split(array1,[3,5])
print("1.kısım",bolum1,"\n2.kısım",bolum2,"\n3.kısım",bolum3)
Code language: PHP (php)
Ayırma: [array([15, 1, 2]), array([5, 8]), array([10, 5, 6])]
1.kısım [15 1 2]
2.kısım [5 8]
3.kısım [10 5 6]
Code language: CSS (css)
import numpy as np
npmatris=np.arange(16).reshape(4,4)
print("16'kadar sıralı 4x4 matris 2 ye ayırma:\n",np.vsplit(npmatris,[2]))
ustmatris,altmatris=np.vsplit(npmatris,[2])
print("Üst Kısım:\n:",ustmatris)
print("Alt Kısım:\n:",altmatris)
Code language: PHP (php)
16'kadar sıralı 4x4 matris 2 ye ayırma:
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
Üst Kısım:
: [[0 1 2 3]
[4 5 6 7]]
Alt Kısım:
: [[ 8 9 10 11]
[12 13 14 15]]
import numpy as np
npmatris1=np.arange(16).reshape(4,4)
print("(Yatay)16'kadar sıralı 4x4 matris 2 ye ayırma:\n",np.hsplit(npmatris1,[2]))
solmatris1,sagmatris1=np.hsplit(npmatris1,[2])
print("Sol Kısım:\n:",solmatris1)
print("Sag Kısım:\n:",sagmatris1)
Code language: PHP (php)
(Yatay)16'kadar sıralı 4x4 matris 2 ye ayırma:
[array([[ 0, 1],
[ 4, 5],
[ 8, 9],
[12, 13]]), array([[ 2, 3],
[ 6, 7],
[10, 11],
[14, 15]])]
Sol Kısım:
: [[ 0 1]
[ 4 5]
[ 8 9]
[12 13]]
Sag Kısım:
: [[ 2 3]
[ 6 7]
[10 11]
[14 15]]
import numpy as np
array1=np.array([5,4,2,15,1])
print("Sırala:",np.sort(array1))
array2=np.random.randint(0,16,(4,4))
print("0'dan 16'ya 4x4 array:\n",array2)
print("Satırda Sıralama:\n",np.sort(array2,axis=0))
print("Sutunda Sıralama:\n",np.sort(array2,axis=1))
Code language: PHP (php)
Sırala: [ 1 2 4 5 15]
0'dan 16'ya 4x4 array:
[[ 4 13 6 5]
[ 3 13 6 9]
[ 8 6 0 7]
[10 4 3 1]]
Satırda Sıralama:
[[ 3 4 0 1]
[ 4 6 3 5]
[ 8 13 6 7]
[10 13 6 9]]
Sutunda Sıralama:
[[ 4 5 6 13]
[ 3 6 9 13]
[ 0 6 7 8]
[ 1 3 4 10]]
Code language: PHP (php)
import numpy as np
npmatris=np.random.randint(10,size=(3,3))
print(npmatris)
print("1.satır 3 sutun elemanı:",npmatris[1,1])
npmatris[1,2]=15.55
print("Yeni Eleman eklendikten sonra:\n",npmatris)
Code language: PHP (php)
#Eklenen elemanın tipi float tip, zorlamasıyla int oldu
#İlk Tanımlamada Array'e float eklenmiş olsaydı
#bütün array elemanları float olurdu
[[4 2 1]
[4 1 8]
[8 2 4]]
1.satır 3 sutun elemanı: 1
Yeni Eleman eklendikten sonra:
[[ 4 2 1]
[ 4 1 15]
[ 8 2 4]]
Code language: PHP (php)
import numpy as np
nparray=np.random.randint(10,size=(10))
print(nparray)
print("5.elemandan sonrası",nparray[5:])
print("1 elemandan başla 2 şer artarak git",nparray[1::2])
npmatris=np.random.randint(10,size=(4,4))
print("Matrisimiz\n",npmatris)
print("bütün satır ilk sutunumuz:",npmatris[:,0])
print("2 satır 3 sutuna kadar\n",npmatris[0:2,0:3])
print("Tüm satır 2 sutuna kadar\n",npmatris[::,0:2])
#Satır Sutun
#Yaptığımız bütün işlemler array üzerinde işleniyor
#var olan array'ın kopyası üzeinde oynama yapmak istersek
npmatris=np.random.randint(10,size=(4,4))
npmatriscopy=npmatris.copy()
npmatriscopy[0,0]=155
print("Matris:\n",npmatris)
print("Kopyası:\n",npmatriscopy)
Code language: PHP (php)
[6 7 8 1 5 4 5 9 4 5]
5.elemandan sonrası [4 5 9 4 5]
1 elemandan başla 2 şer artarak git [7 1 4 9 5]
Matrisimiz
[[8 2 7 5]
[6 9 4 1]
[7 3 1 3]
[1 4 6 2]]
bütün satır ilk sutunumuz: [8 6 7 1]
2 satır 3 sutuna kadar
[[8 2 7]
[6 9 4]]
Tüm satır 2 sutuna kadar
[[8 2]
[6 9]
[7 3]
[1 4]]
Matris:
[[1 4 0 5]
[9 3 5 0]
[5 8 6 0]
[8 6 6 1]]
Kopyası:
[[155 4 0 5]
[ 9 3 5 0]
[ 5 8 6 0]
[ 8 6 6 1]]
Code language: CSS (css)
Herhangi bir veri manipülasyonu yaparken yani Verilerinizi düzenlerken her programlama dilinin olduğu gibi her paketlerinde Cheet sheet’ı vardır. İncelemenizi Tavsiye ederim.
Başarılı .