logo

numpy.dot() v Pythonu

Numpy modul Pythonu poskytuje funkci pro provedení tečkového součinu dvou polí.

  • Pokud jsou obě pole 'a' a 'b' jednorozměrná pole, funkce dot() provede vnitřní součin vektorů (bez komplexní konjugace).
  • Pokud jsou obě pole 'a' i 'b' 2-rozměrná pole, funkce dot() provede násobení matice. Ale pro použití násobení matic rohož nebo 'a' @ 'b' je preferováno.
  • Pokud je buď 'a' nebo 'b' 0-rozměrné (skalární), funkce dot() provede násobení. Také použití numpy.multiply(a, b) nebo a *b preferovaná metoda.
  • Pokud je 'a' N-rozměrné pole a 'b' je 1-rozměrné pole, pak funkce dot() provede součin na poslední ose aab.
  • Pokud 'a' je M-rozměrné pole a 'b' je N-rozměrné pole (kde N>=2), pak funkce dot() provede součin na poslední ose 'a' a druhé -k-poslední ose 'b':
 dot(a, b)[i,j,k,n] = sum(a[i,j,:] * b[k,:,n]) 

Syntax

 numpy.dot(a, b, out=None) 

Parametry

a: array_like

Tento parametr definuje první pole.

b: array_like

Intellij idea vs eclipse

Tento parametr definuje druhé pole.

pro každý strojopis

out: ndarray (volitelné)

Je to výstupní argument. Měl by mít přesný druh, který by byl vrácen v případě, že by nebyl použit. Zejména by měl splňovat funkci výkonu, tj. musí obsahovat správný typ, tj. musí být C-souvislý, a jeho dtype musí být dtype, který by byl vrácen pro tečku(a,b). Pokud tedy tyto stanovené podmínky nesplní, vyvolá výjimku.

Návraty

Tato funkce vrací bodový součin 'a' a 'b'. Tato funkce vrací skalár, pokud 'a' a 'b' jsou skaláry nebo 1-rozměrné; jinak vrátí pole. Pokud je zadáno 'out', je vráceno.

Zvyšuje

The ValueError nastane, když poslední rozměr 'a' nemá stejnou velikost jako předposlední dimenze 'b'.

Příklad 1:

 import numpy as np a=np.dot(6,12) a 

Výstup:

 72 

Příklad 2:

 import numpy as np a=np.dot([2j, 3j], [5j, 8j]) a 

Výstup:

 (-34+0j) 

Příklad 3:

 import numpy as np a = [[1, 2], [4, 1]] b = [[4, 11], [2, 3]] c=np.dot(a, b) c 

Výstup:

převést int na řetězec java
 array([[ 8, 17], [18, 47]]) 

Ve výše uvedeném kódu

  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme dvě 2-rozměrná pole ' A ' a ' b '.
  • Deklarovali jsme proměnnou ' C a přiřadil vrácenou hodnotu np.dot() funkce.
  • Nakonec jsme zkusili vytisknout hodnotu ' C '.

Ve výstupu zobrazuje maticový součin jako pole.

Příklad 4:

 import numpy as np x = np.arange(3*4*5*6).reshape((3,4,5,6)) y = np.arange(3*4*5*6)[::-1].reshape((5,4,6,3)) p=np.dot(a, b)[2,3,2,1,2,2] q=sum(a[2,3,2,:] * b[1,2,:,2]) p q 

Výstup:

 499128 499128 

Ve výše uvedeném kódu

Java vs C++
  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme dvě pole ' A ' a ' b ' použitím np.arange() a změňte tvar obou polí pomocí funkce reshape().
  • Deklarovali jsme proměnnou ' C a přiřadil vrácenou hodnotu np.dot() funkce
  • Nakonec jsme zkusili vytisknout ' C ' hodnota.

Ve výstupu zobrazuje maticový součin jako pole.