Python点对象列表列表,不使用numpy

AJW*_*AJW 1 python computation mathematical-expressions dot-product

我是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]]
Run Code Online (Sandbox Code Playgroud)

我希望将每个列表的元素相互叠加.就像是:

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]
Run Code Online (Sandbox Code Playgroud)

想知道我是否可以在使用numpy/scipy的情况下完成上述操作.

谢谢.

Eri*_*ric 6

import operator
a_dot = [reduce(operator.mul, col, 1) for col in zip(*a)]
Run Code Online (Sandbox Code Playgroud)

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

a_dot = [all(col) for col in zip(*a)]
Run Code Online (Sandbox Code Playgroud)