dot#
- coo_matrix.dot(other)[Quelle]#
Gibt das Skalarprodukt zweier Arrays zurück.
Genau genommen bezieht sich das Skalarprodukt auf zwei Vektoren. Aber in dem Sinne, dass ein Array mit ndim >= 1 eine Sammlung von Vektoren ist, berechnet die Funktion die Sammlung von Skalarprodukten zwischen jedem Vektor im ersten Array und jedem Vektor im zweiten Array. Die Achse, auf der die Summe der Produkte durchgeführt wird, ist die letzte Achse des ersten Arrays und die vorletzte Achse des zweiten Arrays. Wenn das zweite Array 1-D ist, wird die letzte Achse verwendet.
Somit wird bei beiden Arrays 1-D das innere Produkt zurückgegeben. Wenn beide 2-D sind, haben wir Matrixmultiplikation. Wenn other 1-D ist, wird das Produkt über die letzte Achse jedes Arrays gebildet. Wenn other N-D für N >= 2 ist, erfolgt die Produktbildung über die letzte Achse des ersten Arrays und die vorletzte Achse des zweiten Arrays.
- Parameter:
- otherarray_like (dicht oder dünn besetzt)
Zweites Array
- Rückgabe:
- outputarray (dünn besetzt oder dicht)
Das Skalarprodukt dieses Arrays mit other. Es wird dicht/dünn besetzt sein, wenn other dicht/dünn besetzt ist.
Beispiele
>>> import numpy as np >>> from scipy.sparse import coo_array >>> A = coo_array([[1, 2, 0], [0, 0, 3], [4, 0, 5]]) >>> v = np.array([1, 0, -1]) >>> A.dot(v) array([ 1, -3, -1], dtype=int64)
Für 2-D-Arrays ist es das Matrixprodukt
>>> A = coo_array([[1, 0], [0, 1]]) >>> B = coo_array([[4, 1], [2, 2]]) >>> A.dot(B).toarray() array([[4, 1], [2, 2]])
Für 3-D-Arrays erweitert sich die Form ungenutzte Achsen durch andere ungenutzte Achsen.
>>> A = coo_array(np.arange(3*4*5*6)).reshape((3,4,5,6)) >>> B = coo_array(np.arange(3*4*5*6)).reshape((5,4,6,3)) >>> A.dot(B).shape (3, 4, 5, 5, 4, 3)