dot#
- coo_array.dot(other)[source]#
Gibt das Skalarprodukt zweier Arrays zurück.
Streng 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, über die die Summe der Produkte gebildet 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.
Wenn also beide Arrays 1-D sind, wird das innere Produkt zurückgegeben. Wenn beide 2-D sind, haben wir eine Matrixmultiplikation. Wenn other 1-D ist, wird das Summenprodukt entlang der letzten Achse jedes Arrays gebildet. Wenn other N-D für N >= 2 ist, erfolgt das Summenprodukt über die letzte Achse des ersten Arrays und die vorletzte Achse des zweiten Arrays.
- Parameter:
- otherarray_like (dense oder sparse)
Zweites Array
- Rückgabe:
- outputarray (sparse oder dense)
Das Skalarprodukt dieses Arrays mit other. Es wird dicht/dünn sein, wenn other dicht/dünn 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 werden die ungenutzten Achsen durch andere ungenutzte Achsen erweitert.
>>> 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)