我有一个Scipy矩阵
a = sps.csc_matrix( (z , (x,y)), shape = (N,N), dtype = int)
我有另一个1D数组z
,我想与a
中的每一列进行比较并计算匹配数。
count = 0
for i in range(N):
count += (z == a[:,j]).sum()
这需要很长时间,因为代码没有矢量化。有没有办法对这种比较进行矢量化?
a == z
不起作用。但是我想要一些类似于两个数组的numpy中的a*z
如何非常快地进行逐列乘法,而不是明确地循环a
列并乘以z
。
答案 0 :(得分:1)
这会给你你想要的吗?
(a == z[:, None]).sum()