你可以投
C
使用布尔值并利用值
True
将成为
1
在乘法的上下文中。然后可以在
A.dot(B)
和
C
。
您可以通过以下方式实现:
A.dot(B).to_csr().multiple(C.to_csr())
更快的Dot产品
为了获得尽可能快的点产品,我会对提供的所有稀疏格式进行强制搜索
scipy
.定义计时功能,例如:
from functools import wraps
from time import time
def timing(f):
@wraps(f)
def wrapper(*args, **kwargs):
start = time()
result = f(*args, **kwargs)
end = time()
print 'Elapsed time: {}'.format(end-start)
return result
return wrapper
@timing
def csr_dot(a, b):
# Write similar functions for all other formats
return a.to_csr().dot(b.to_csr())
# This will print some time. Repeat for other formats.
csr_dot(A, B)
然后,您可以选择产生最佳时间的格式。