Jak obliczyć iloczyn skalarny za pomocą numpy


Biorąc pod uwagę wektor a = [a 1 , a 2 , a 3 ] i wektor b = [b 1 , b 2 , b 3 ], iloczyn skalarny wektorów, oznaczonych a · b , jest dany wzorem:

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

Na przykład, jeśli a = [2, 5, 6] i b = [4, 3, 2], to iloczyn skalarny a i b będzie równy:

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

ab = 8 + 15 + 12

odb = 35

Mówiąc najprościej, iloczyn skalarny to suma iloczynów odpowiednich wpisów w dwóch wektorach.

W Pythonie możesz użyć funkcji numpy.dot() , aby szybko obliczyć iloczyn skalarny między dwoma wektorami:

 import numpy as np

n.p. dowry (a, b)

Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję.

Przykład 1: oblicz iloczyn skalarny między dwoma wektorami

Poniższy kod pokazuje, jak używać numpy.dot() do obliczania iloczynu skalarnego między dwoma wektorami:

 import numpy as np

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

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

33

Oto jak obliczono tę wartość:

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

Przykład 2: oblicz iloczyn skalarny między dwiema kolumnami

Poniższy kod pokazuje, jak używać numpy.dot() do obliczania iloczynu skalarnego między dwiema kolumnami w ramce DataFrame pandy:

 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

Oto jak obliczono tę wartość:

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

Uwaga: Pamiętaj, że Python zgłosi błąd, jeśli dwa wektory, dla których obliczasz iloczyn skalarny, mają różną długość.

Dodatkowe zasoby

Jak dodać wiersze do ramki danych Pandas
Jak dodać tablicę Numpy do ramki danych Pandas
Jak obliczyć korelację przesuwną w pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *