我在numpy中有2个布尔矩阵,我使用.dot()函数来乘以它们,我得到的结果是一个布尔矩阵。
如果我在进行矩阵乘法并且元素是1或0时,有没有办法在乘法过程中得到各个元素乘积的总和?
即。结果矩阵中的元素应为0或非零整数。
提前致谢。
答案 0 :(得分:2)
使用int
转换为astype
。
演示:
>>> import numpy as np
>>> np.random.seed(5)
>>> a = np.random.random([3,3]) > 0.5
>>> b = np.random.random([3,3]) > 0.5
现在a,b是dtype bool
的数组:
>>> a
array([[False, True, False],
[ True, False, True],
[ True, True, False]], dtype=bool)
将它们乘以整数:
>>> np.dot(a.astype(np.int), b.astype(np.int))
array([[0, 0, 1],
[0, 0, 1],
[0, 0, 2]])