Skip to main content
 首页 » 编程设计

列表列表上的 Python 点乘列表,不使用 numpy

2025年05月04日16mayingbao

我是 python 的新手,对数组本身很熟悉,但我对一个相当简单的问题感到震惊。我有一个列表列表,如下所示:

a = [[1,0,1,0,1],[0,0,1,0,1],[0,0,1,0,1],[1,1,1,0,1],[1,0,0,0,0]] 

我想将每个列表的元素相互相乘。像这样的东西:

a_dot = [1,0,1,0,1]*[0,0,1,0,1]*[0,0,1,0,1]*[1,1,1,0,1]*[1,0,1,0,0] 
=[0,0,1,0,0] 

想知道我是否可以不使用 numpy/scipy 来完成上述操作。

谢谢。

请您参考如下方法:

import operator 
a_dot = [reduce(operator.mul, col, 1) for col in zip(*a)] 

但是如果你所有的数据都是 0 和 1:

a_dot = [all(col) for col in zip(*a)]