Bir veri bilimi projesine attığımız ilk adımlarda veriyi tanıyıp bazı istatistiki değerlerine göz atmak ve üzerinde array işlemleri yapabilmek için Numpy adlı Python kütüphanesini kullanırız. Matematiksel array işlemlerinde temel python fonksiyonlarına göre daha yüksek performansla çalışan Numpy bir veri bilimcinin olmazsa olmaz yeteneklerinden biri haline gelmiştir.
Bu yazıda temel olarak kullanılan Numpy özelliklerine giriş yapıp küçük örneklerde kodları açıklamaya çalışacağım.
Aşağıda paylaştığım kod bloğunda ilk 4 satırda öncelikle import numpy as np ifadesiyle kütüphaneyi yüklüyoruz. X değişkeni üzerinden np kısaltmasını kullanarak bir array oluşturuyoruz. İfadelerin sonuçlarını terminalde göstermek için print fonksiyonuyla beraber tanımlamış oluğumuz değişken adını giriyoruz.
Satır 6′ da oluşturduğumuz değişkenin veri tipini, Satır 8’de değişkenin sahip olduğu boyutları, Satır 10’da ise değişkenin sahip olduğu toplam eleman sayısını terminale yazdırıyoruz. Satır 12, değişkenin boyut sayısını Satır 14 ise arraydeki veri ve verilerin tipini döndürüyor.
Veri setine ilk eriştiğimizde ilk 15 satırdaki kodlarla beraber veriye kabaca göz atmış oluruz. 15 ve 30. satırlar arasında yukarıdaki işlemler bu kez iki boyutlu bir array için gerçekleştirilmiştir. Boyut sayılarını arttırmak için virgül koyup sonrasında köşeli parantez ile verileri girmemiz yeterli.
Np ifadesinden sonra zeros ve ones fonksiyonlarıyla istediğimiz boyutlarda 0 ve 1’lerden oluşan array ya da matrisler oluşturabilir, full fonksiyonu ile bir arrayi belirtilen veri tipinde doldurabiliriz. Full fonksiyonuna ek olarak empty fonksiyonu ile boş bir array/matris oluşturabiliriz.
Lineer Cebir ile ilgili küçük çalışmalar için eye ya da identity fonksiyonları ile birim matris oluşturabilir, diag fonksiyonu ile diagonal bir matris üzerinde çalışmaya başlayabiliriz.
61–70 numaralı satırlar arasında görmüş olduğunuz arange fonksiyonu bize belirli aralıklar içerisinde bizim belirlediğimiz artış miktarına göre veriler üretir. Hemen altında yer alan linspace fonksiyonunun 3. argümanı bize belirlemiş olduğumuz aralıkta kaç adet veri istediğimizi sorar.
Reshape fonksiyonuyla önceden belirlenen bir array yapısında boyutları değiştirebilir tek boyutlu bir arrayi kare ya da dikdörtgensel matris haline getirebiliriz. Delete fonksiyonu girilen argümanlara göre arrayde istenmeyen verileri silmede bize yardımcı olur.
101–110. satırlarda gördüğümüz append fonksiyonu ile çeşitli argüman değerlerini girerek matrise eklemeler yapabiliriz. 115. satırda Append fonksiyonuna yakın olan Insert fonksiyonu ile oluşturulan arrayde 0 numaralı indekse sahip birime 59 değerini atadık ve başlangıç değeri olarak gösterdik.
Bloğun son satırlarına geldiğimizde ilk olarak X22 ve Y3 adlı değişkenleri oluşturuyoruz. Sonra vstack fonkiyonu ile X22 adlı arrayi Y3 matrisinin üstüne dikey pozisyonda ekleyip birleştiriyoruz. Son kod parçası olan 128. satırdan itibaren hstack fonksiyonu ile yukarıda gerçekleştirdiğimiz işlemi bu sefer yatay olarak gerçekleştiriyoruz.
Yakın zamanda biraz daha detaylısını yayınlayacağım Veri Bilimi İçin Numpy yazımın sonuna geldik. Umarım giriş seviyesi için bilgi edinmek isteyen herkese yararı dokunur. Bir sonraki yazıda görüşmek üzere.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
import numpy as np #nasil dizi olusturulur? X = np.array([1,2,3,4,5,6,7,8,9]) print(X) print(type(X)) #olusturulan X'in tipi nedir (numpy dizisi) print(X.shape) #X arrayinin eksen bazinda boyutu (9 satir 1 sutun) print(X.size) #toplam eleman sayisini verir print(X.ndim) #boyut sayisi print(X.dtype) #X arrayindeki verilerin tipi nedir Y = np.array([[1,2,3], [4,5,6]]) print(Y) print(type(Y)) print(Y.shape) print(Y.size) print(Y.ndim) print(Y.dtype) X1 = np.zeros(5) print(X1) X12 = np.zeros((3,4)) print(X12) X2 = np.zeros((2,4,5)) print(X2) X3 = np.ones(9) print(X3) X4 = np.full((3,4), 7) print(X4) X5 = np.empty((3,3)) print(X5) import numpy as np X6 = np.eye(5) #birim matris print(X6) X7 = np.identity(9) #birim matris print(X7) X8 = np.diag([59,67,7,35,48]) #diagonal matris print(X8) X9 = np.arange(11) #11'e kadar yazdirir print(X9) X10 = np.arange(35,49) #35'ten 49'a kadar git 49 dahil değil print(X10) X11 = np.arange(5, 35, 5) #5'ten 35'e kadar 5'er artış miktarıyla git print(X11) X12 = np.linspace(5, 20, 5) #5 ile 20 arasında 5 eleman olacak şekilde ilerle print(X12) X13 = np.linspace(5,45, 6, endpoint=False) #bitis noktasini dahil etme print(X13) X14 = np.arange(30) print(X14) X15 = np.reshape(X14, (5,6)) #verileri degistirmeden boyutu verilen parametrelere gore yeniden sekillendirir print(X15) X16 = np.arange(9) print(X16) print(X16[2]) #dizinin 2 indeksine sahip elemanı print(X16[-3]) #dizinin -3 indeksine sahip elemanı X17 = np.arange(8) print(X17) Y1 = np.delete(X17, [0,2]) print(Y1) #0 ve 2 numaralı indekse sahip sutunlari sildik X18 = np.arange(16).reshape(4,4) print(X18) Y2 = np.delete(X18, 1, axis=0) print(Y2) X19 = np.arange(6) print(X19) X19 = np.append(X19, 6) print(X19) #array'e 6'yi ekledik append ile X20 = np.arange(9).reshape(3,3) print(X20) X20 = np.append(X20, [[100,200,300]], axis=0) #satir olarak ekleme yaptik print(X20) X20 = np.append(X20, [[10], [20], [30], [40]], axis=1) #sutun olarak ekleme yaptik print(X20) X21 = np.arange(5) print(X21) X21 = np.insert(X21, 0, 59) print(X21) X22 = np.arange(3) print(X22) Y3 = np.arange(9).reshape(3,3) print(Y3) a = np.vstack((X22,Y3)) #vertical stack print(a) Y3 = Y3.reshape((9,)) b = np.hstack((X22,Y3)) #horizontal stack print(b) |