Numpy İle Veri Bilimi
  • Giriş
  • Numpy dizileri oluşturma
  • Özel Numpy dizileri/matrisleri
  • Numpy Dizilerinin Dilimlenmesi (Slicing)
  • Numpy Dizileri üzerinde işlemler
    • Basit Matematik İşlemleri
    • Kullanışlı Fonksiyonlar
    • Boyut Dönüşümleri
    • Dizilerinin birleştirilmesi
  • Referanslar
  • book.json
Powered by GitBook
On this page
  • Matrislerin sayılarla girdiği işlemler (Skaler çarpım)
  • Matrislerin birbirleri üzerinden girdiği işlemler
  • Matris çarpımı
  • Numpy tarafında matris çarpımı nasıl oluyor?

Was this helpful?

  1. Numpy Dizileri üzerinde işlemler

Basit Matematik İşlemleri

Öncelikle numpy kütüphanesini ekleyelim ve basit iki matris oluşturalım.

import numpy as np

x = np.array([[1,2],[3,4]], dtype=np.float64)  # türü noktalı sayı olarak belirlendi
y = np.array([[5,6],[7,8]], dtype=np.float64)

Matrislerin sayılarla girdiği işlemler (Skaler çarpım)

Matrisleri sayılar ile de işleme sokabiliriz. Bir matris ile bir sayı her bir sayının çarpılmasına skaler çarpım adını veriyoruz. Skaler çarpım, bir reel sayı ile matrisin tüm elemanlarını işleme girmesi ile elde edilir.

2*x       # [[ 2.,  4.],
          #  [ 6.,  8.]])

(0.5)*x   # [[ 0.5,  1. ],
          #  [ 1.5,  2. ]])

Tabiki numpy matrisler ile sayıların toplama, çıkarma gibi matematik işlemleri ile kullanılmasını da destekliyor. Örneğin bir matris ile bir skaler sayı toplandığında bütün matris elemanları toplanıyor. Bir kaç örnek bakalım:

x+1       #  [[ 2.,  3.],
          #   [ 4.,  5.]]

2*x+1     #  [[ 3.,  5.],
          #   [ 7.,  9.]]

Matrislerin birbirleri üzerinden girdiği işlemler

Kodlar üzerinden gidelim:

print x   #  [[ 1.,  2.],
          #   [ 3.,  4.]] 

print y   #  [[ 5.,  6.],
          #   [ 7.,  8.]]

x+y       #  [[  6.,   8.],
          #   [ 10.,  12.]]

x-y       #  [[-4., -4.],
          #   [-4., -4.]]

x*y       #  [[  5.,  12.],
          #   [ 21.,  32.]]

x/y       #  [ 0.2       ,  0.33333333],
          #  [ 0.42857143,  0.5       ]]

np.sqrt(x) # [[ 1.        ,  1.41421356],    # her bir elemanın karekökü
           #  [ 1.73205081,  2.        ]])

Yukarıdaki matematiksel işlemler np.add( ), np.subtract( ), np.multiply( ) ve np.divide( ) komutları ile de yapılabilmektedir. Matematiksel semboller daha sezgisel olduğu için kullanılmasını şahsen daha hoş buluyorum.

Matris çarpımı

Kısaca matris çarpımını hatırlatmak gerekirse:

Şimdi diğer soru işaretli yeri bulalım.

Numpy tarafında matris çarpımı nasıl oluyor?

Bu işlemleri numpy ile np.dot( ) metodu ile yapabiliriz. Önce matrislerimizi tanımlayalım, ardından metodu kullalım.

x = np.array([[1,2],[3,4]], dtype=np.float64)
y = np.array([[3,4],[5,6]], dtype=np.float64)

x.dot(y)    # [[13, 16],
            #  [29, 36]]

np.dot( ) metodunu biraz daha farklı yönleriyle görmek istersek, bunun 3 farklı şekilde çalışabildiğini görürüz. Bunlar:

  1. matris, matris çarpımı

  2. vektör, vektör çarpımı

  3. matris, vektör çarpımı

Madde 1) matris matris çarpımını zaten yukarıdaki kod örneğinde görmüştük.

v = np.array([1,2])
w = np.array([3,5])

# vektörlerin iç çarpımı
v.dot(w)    # 13

Madde 3) matris vektör çarpımından bahsedelim son olarak. örnek verelim. Burası vektörün

x = np.array([[1,2],[3,4]])

w.dot(x)    # [18 26]

Son yaptığımız kısmı açıklama gerekirse:

PreviousNumpy Dizileri üzerinde işlemlerNextKullanışlı Fonksiyonlar

Last updated 5 years ago

Was this helpful?

Tanımladığımız matrisler üzerinde basit matematiksel işlemleri çalıştırabiliriz. Yaptığımız tüm işlemler matrisler üzerinde karşılık gelen yöndeş elemanlar üzerinden yapılacak. Örneğin x=[1234]x = \begin{bmatrix} \color{blue}1 & \color{red} 2 \\ 3&4 \end{bmatrix}x=[13​24​] ve y=[3456]y = \begin{bmatrix} \color{blue}3 & \color{red}4 \\ 5 & 6 \end{bmatrix}y=[35​46​] olmak üzere, bu matrisler üzerinde toplama, çıkarma gibi işlemlerde ilgili renklere karşılık gelen elemanlar birbirleriyle toplanacak. Yani mavi ile mavi, kırmızı ile kırmızı ve bunun gibi diğer elemanlar..

Matrisleri ile matrisin çarpılmasına matris çarpımı adını veriyoruz. Matris çarpımını lise matematik bilginizden hatırlayacaksınızdır. Eğer bilginizi tazelemek isterseniz sizi davet ediyoruz. Bu sayfada matrislerin çarpımı ile alakalı doyurucu bilgiye ulaşabilirsiniz.

[1234]x[3456]=[?...]\begin{bmatrix} \color{blue}1 & \color{blue} 2 \\ 3&4 \end{bmatrix} \text{x} \begin{bmatrix} \color{red}3&4 \\ \color{red}5&6 \end{bmatrix} = \begin{bmatrix} ? & . \\ . & . \end{bmatrix}[13​24​]x[35​46​]=[?.​..​]

Sol matristeki mavi vektör ile sağ matristeki kırmızı vektör iç çarpımları yapılarak sonuçtaki matrisin ? ile belirtilmiş kısmına yerleştirilir. (1,2) . (3,5)=1 x 3+2 x 5=13(\color{blue}1 , \color{blue}2 \color{black}) \text{ . } (\color{red}3 , \color{red}5 \color{black}) = 1 \text{ x } 3 + 2\text{ x }5 = 13(1,2) . (3,5)=1 x 3+2 x 5=13 olur. Benzer şekilde aşağıdaki renkli kısımların çarpımı bir sonraki soru işaretli yeri verecektir.

[1234]x[3456]=[13?..]\begin{bmatrix} \color{blue}1 & \color{blue} 2 \\ 3&4 \end{bmatrix} \text{x} \begin{bmatrix} 3& \color{red}4 \\ 5&\color{red} 6 \end{bmatrix} = \begin{bmatrix} 13 & ? \\ . & . \end{bmatrix}[13​24​]x[35​46​]=[13.​?.​]

Bu sefer kırmızı ile işaretlenmiş vektörü kaydırıyoruz. (1,2) . (4,6)=1 x 4+2 x 6=16(\color{blue}1 , \color{blue}2 \color{black}) \text{ . } (\color{red}4 , \color{red}6 \color{black}) = 1 \text{ x } 4 + 2 \text{ x } 6 = 16(1,2) . (4,6)=1 x 4+2 x 6=16 işlemini yapıyoruz. Bu iç çarpımın sonucu olan 16'yı sonuç matrisinde ilgili yere yazıyoruz. Sonrasında ise soldaki matristeki alt kısım seçilerek yukarıdaki işlemler tamamlanır. Tüm işlemler bittiğinde sonuç matrisimiz şöyle olur:

[1234]x[3456]=[13162936]\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \text{x} \begin{bmatrix} 3 & 4 \\ 5 & 6 \end{bmatrix} = \begin{bmatrix} 13 & 16 \\ 29 & 36 \end{bmatrix}[13​24​]x[35​46​]=[1329​1636​]

Madde 2) vektör vektör çarpımından bahsedelim biraz. İki vektör çarpıldığında bunların iç çarpımını alıyoruz. Hani biraz önceki matris çarpımında satır ve sütun vektörlerinin iç çarpımı gibi. Örneğin [1,2] . [3,5]=1 x 3+2 x 5=13[1 , 2] \text{ . } [3 , 5] = 1 \text{ x } 3 + 2 \text{ x } 5 = 13[1,2] . [3,5]=1 x 3+2 x 5=13 çarpımını numpy ile yapalım.

Burada esasen [35]\begin{bmatrix} 3&5 \end{bmatrix}[3​5​] vektörü ile[1234]\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}[13​24​]matrisi ile çarpılıyor. Bunlar da içinde 2 adet iç çarpımı barındırıyor:

[3,5] . [1,3]=3 x 1+5 x 3=18[3 , 5] \text{ . } [1 , 3] = 3 \text{ x } 1 + 5 \text{ x } 3 = 18[3,5] . [1,3]=3 x 1+5 x 3=18

[3,5] . [2,4]=3 x 2+5 x 4=26[3 , 5] \text{ . } [2 , 4] = 3 \text{ x } 2 + 5 \text{ x } 4 = 26[3,5] . [2,4]=3 x 2+5 x 4=26

Dolayısıyla sonuç olarak içeriği [1826]\begin{bmatrix} 18&26 \end{bmatrix}[18​26​] olan yeni bir vektör elde ediyoruz.

buraya