NumPy

Kategori: Computer Vision , 15 Ocak 2020 , JanFranco


Resimler, videolar üzerinde işlemler yapmadan önce NumPy kütüphanesine hakim olmamız, methodlarını kullabiliyor olmamız gerekli. NumPy matematiksel işlemler, arrayler yani listeler, matrisler üzerinde kolayca işlemler yapabilmemiz sağlayan güzel bir kütüphanedir. Kütüphanedeki her bir methodu ezbere bilmemize gerek yok. Zaten NumPy orjinal dökümanları gayet güzel ve anlaşılır bir şekilde hazırlanmış. Ancak bazı methodları bilmemiz, bakmadan kullanmaya alışmamız iyi olabilir. Bu yazımızda basit NumPy methodlarını kullanacağız. İlk olarak kütüphaneyi import edelim:


import numpy as np
as np diyerek numpy ismini np olarak kısalttık ve bu şekilde kullanacağız. Zorunlu değil ancak herkes böyle kullanıyor. Şimdi bir liste oluşturalım. Daha sonra bu listeyi numpy array haline getirelim:


myList = [0, 1, 2, 3, 4]
arr = np.array(myList)
print(arr)

>>

array([0, 1, 2, 3, 4])
Şimdi arange methodu ile hazır arrayler üretelim:


print(np.arange(0, 10)
print(np.arange(0, 10, 2)

>>

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
array([0, 2, 4, 6, 8])
arange methodunun ilk iki parametresi başlangıç ve bitiş değerleridir. Opsiyonel olarak üçüncü bir parametre daha vererek step size yani adım sayısını belirleyebiliriz. 2 diyerek 0 - 2 - 4.. şeklinde bir array ürettik. Şimdi sadece 0 ve sadece 1 sayılarından oluşan matrisler üretelim:


zeros = np.zeros((5, 5))
ones = np.ones((2, 4))
print(zeros)
print(ones)

>>

array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])

array([[1., 1., 1., 1.],
       [1., 1., 1., 1.]])
NumPy ile rastgele sayılar üretelim:


np.random.seed(101)
arr = np.random.randint(0, 100, 10)
print(arr)

>>

array([95, 11, 81, 70, 63, 87, 75,  9, 77, 40])
İlk satırdaki seed methodunu kullanmak zorunda değiliz. Random sayılar üretirken genellikle seed methodları kullanılmakta, araştırabilirsiniz. randint methodunun ilk parametresi minimum değer, ikinci paremetresi maksimum değer, üçüncü parametresi boyuttur. Sadece 10 girilirse tek boyutlu bir array oluşturulur. Ancak (10, 10) şeklinde 100 elemanlı bir matris de tanımlayabilirdik. Şimdi oluşan dizideki maksimum, minimum sayıları ve bu sayıların indexlerini bulalım:


print(arr.max())
print(arr.argmax())
print(arr.min())
print(arr.argmin())

>>

95
0
9
7
Ortalamayı bulalım:


print(arr.mean())

>>

60.8
Arrayi yeniden boyutlandıralım:


arr = arr.reshape(2, 5)
print(arr)

array([[95, 11, 81, 70, 63],
       [87, 75,  9, 77, 40]])
Index işlemlerine geçelim. İlk olarak işlemleri yapabileceğimiz büyük bir matris tanımlayalım ve 0. satırdaki 1. sütundaki elemanı konsola bastıralım:


mat = np.arange(0,100).reshape(10,10)
print(mat)
print(mat[0, 1])

>>

array([[ 0,  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]])

1
1. sütundaki tüm elemanları ve 1. satırdaki tüm elemanları alalım:


print(mat[:, 1])
print(mat[1, :])

>>

array([ 1, 11, 21, 31, 41, 51, 61, 71, 81, 91])
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Burada : sembolü tüm elemanları al demek. Satır indexini yazdığımız kısma : koyarsak tüm satırları al demek oluyor. Sütun indexini yazdığımız kısma da 1 yazmışsak, 1. sütundaki tüm satırları al demiş oluyoruz. Son olarak ilk 3 satır ve ilk 3 sütunu alalım:


print(mat[0:3, 0:3])

>>

array([[ 0,  1,  2],
       [10, 11, 12],
       [20, 21, 22]])


Sonraki Yazı: Images and NumPy
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın