scipy.sparse.coo_array.

dot#

coo_array.dot(other)[source]#

傳回兩個陣列的點積。

嚴格來說,點積涉及兩個向量。但在陣列的維度 ndim >= 1 時,它可以被視為向量的集合。此函數計算第一個陣列中每個向量與第二個陣列中每個向量之間點積的集合。執行乘積和的軸是第一個陣列的最後一個軸和第二個陣列的倒數第二個軸。如果第二個陣列是一維的,則使用最後一個軸。

因此,如果兩個陣列都是一維的,則傳回內積。如果兩個都是二維的,我們得到矩陣乘法。如果 other 是一維的,則沿著每個陣列的最後一個軸取乘積和。如果 other 是 N 維的 (N>=2),則乘積和是在第一個陣列的最後一個軸和第二個陣列的倒數第二個軸上進行的。

參數:
otherarray_like (dense or sparse)

第二個陣列

回傳值:
outputarray (sparse or dense)

此陣列與 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)

對於 2-D 陣列,這是矩陣乘積

>>> A = coo_array([[1, 0], [0, 1]])
>>> B = coo_array([[4, 1], [2, 2]])
>>> A.dot(B).toarray()
array([[4, 1],
       [2, 2]])

對於 3-D 陣列,形狀會通過其他未使用的軸延伸未使用的軸。

>>> 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)