Numpy kullanılarak nokta çarpım nasıl hesaplanır


a = [a 1 , a 2 , a 3 ] vektörü ve b = [b 1 , b 2 , b 3 ] vektörü verildiğinde, vektörlerin a · b ile gösterilen skaler çarpımı şu şekilde verilir:

ab = a 1 * b 1 + a 2 * b 2 + a 3 * b 3

Örneğin, a = [2, 5, 6] ve b = [4, 3, 2] ise a ve b’nin iç çarpımı şuna eşit olacaktır:

ab = 2*4 + 5*3 + 6*2

ab = 8 + 15 + 12

ab = 35

Basit bir ifadeyle nokta çarpım, iki vektördeki karşılık gelen girdilerin çarpımlarının toplamıdır.

Python’da iki vektör arasındaki nokta çarpımı hızlı bir şekilde hesaplamak için numpy.dot() işlevini kullanabilirsiniz:

 import numpy as np

n.p. dowry (a, b)

Aşağıdaki örnekler bu fonksiyonun pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: iki vektör arasındaki nokta çarpımı hesaplayın

Aşağıdaki kod, iki vektör arasındaki nokta çarpımı hesaplamak için numpy.dot() işlevinin nasıl kullanılacağını gösterir:

 import numpy as np

#definevectors
a = [7, 2, 2]
b = [1, 4, 9]

#calculate dot product between vectors
n.p. dowry (a, b)

33

Bu değer şu şekilde hesaplandı:

  • ab = 7*1 + 2*4 + 2*9
  • ab = 7 + 8 + 18
  • ab = 33

Örnek 2: iki sütun arasındaki nokta çarpımı hesaplayın

Aşağıdaki kod, bir panda DataFrame’deki iki sütun arasındaki nokta çarpımı hesaplamak için numpy.dot() işlevinin nasıl kullanılacağını gösterir:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' A ': [4, 6, 7, 7, 9],
                   ' B ': [5, 7, 7, 2, 2],
                   ' C ': [11, 8, 9, 6, 1]})

#view DataFrame
df

	A B C
0 4 5 11
1 6 7 8
2 7 7 9
3 7 2 6
4 9 2 1

#calculate dot product between column A and column C
n.p. dot (df. A , df. C )

206

Bu değer şu şekilde hesaplandı:

  • AC = 4*11 + 6*8 + 7*9 + 7*6 + 9*1
  • AC = 44 + 48 + 63 + 42 + 9
  • Bir C = 206

Not: Nokta çarpımını hesapladığınız iki vektörün uzunlukları farklıysa Python’un hata vereceğini unutmayın.

Ek kaynaklar

Pandas DataFrame’e satırlar nasıl eklenir
Pandas DataFrame’e Numpy dizisi nasıl eklenir
Pandalarda kayan korelasyon nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir