scipy.sparse.coo_matrix.
dot#
- coo_matrix.dot(other)[source]#
傳回兩個陣列的點積。
嚴格來說,點積涉及兩個向量。但在陣列維度 ndim >= 1 時,它可以視為向量的集合。此函數計算第一個陣列中每個向量與第二個陣列中每個向量之間的點積集合。執行乘積總和的軸是第一個陣列的最後一個軸和第二個陣列的倒數第二個軸。如果第二個陣列是一維的,則使用最後一個軸。
因此,如果兩個陣列都是一維的,則傳回內積。如果都是二維的,則為矩陣乘法。如果 other 是一維的,則沿著每個陣列的最後一個軸計算乘積總和。如果 other 是 N 維的 (N>=2),則乘積總和會在第一個陣列的最後一個軸和第二個陣列的倒數第二個軸上計算。
- 參數:
- other類陣列 (密集或稀疏)
第二個陣列
- 傳回:
- output陣列 (稀疏或密集)
此陣列與 other 的點積。如果 other 是密集/稀疏的,則結果也會是密集/稀疏的。
範例
>>> 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)
對於二維陣列,這是矩陣乘積
>>> A = coo_array([[1, 0], [0, 1]]) >>> B = coo_array([[4, 1], [2, 2]]) >>> A.dot(B).toarray() array([[4, 1], [2, 2]])
對於三維陣列,形狀會將未使用的軸延伸到其他未使用的軸。
>>> 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)