Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python按元素乘法列表_Python_List_Numpy - Fatal编程技术网

Python按元素乘法列表

Python按元素乘法列表,python,list,numpy,Python,List,Numpy,最简洁的方法是什么来将一系列数字按元素相乘 例如 使用np.prod: >>> a = np.array([[1,2,3],[2,3,4],[3,4,5]]) >>> np.prod(a,axis=1) array([ 6, 24, 60]) 使用列表理解和减少: >>> from operator import mul >>> lis = [[1,2,3],[2,3,4],[3,4,5]] >>> [r

最简洁的方法是什么来将一系列数字按元素相乘

例如


使用
np.prod

>>> a = np.array([[1,2,3],[2,3,4],[3,4,5]])
>>> np.prod(a,axis=1)
array([ 6, 24, 60])

使用列表理解和
减少

>>> from operator import mul
>>> lis = [[1,2,3],[2,3,4],[3,4,5]]
>>> [reduce(mul, x) for x in lis]
[6, 24, 60]
或者,如果您喜欢地图:

answer = map(functools.partial(functools.reduce, operator.mul), L)  # listify as required

啊!你赢了我(+1)。好的,我将添加另一个,使用
functools.partial
map
我建议
reduce(mul,x,1)
这样它可以安全地扩展到空列表(根据定义,空乘积等于1)。在您给定的示例中,3个不同子列表中相同索引的任意3个元素的乘积等于取相同索引的整个子列表的乘积。请指出。这假设所有子列表都有相同的大小。@François,如果他使用numpy开始,这是一个有效的假设。ImportError:没有名为“np”的模块,我只能猜测np是为numpy准备的?@ThorCaller是的,
将numpy导入为np
是导入numpy的标准方式。
import operator
import functools
answer = [functools.reduce(operator.mul, subl) for subl in L]
answer = map(functools.partial(functools.reduce, operator.mul), L)  # listify as required