首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何乘以列表列表的位置

如何乘以列表列表的位置
EN

Stack Overflow用户
提问于 2018-05-22 21:20:12
回答 4查看 153关注 0票数 1

如何将此列表与python相乘:

代码语言:javascript
运行
复制
A = [ [0.45, 0.89, 0.91],
      [0.5, 0.78, 0.55],
      [0.134, 0.571, 0.142] ]

如何将每列相乘,例如0.45*0.5*0.134 = 0.03015;0.89*0.78*0.571 = 0.3961;0.91*0.55*0.142= 0.071071

代码语言:javascript
运行
复制
 [0.03015,0.3961,0.071071]

我如何用python做到这一点呢?

EN

回答 4

Stack Overflow用户

发布于 2018-05-22 21:25:17

您可以在纯Python中完成此操作:

代码语言:javascript
运行
复制
from operator import mul
from functools import reduce  # no need for this in Python 2.x

res = [reduce(mul, i) for i in zip(*A)]

或者,您可以使用numpy

代码语言:javascript
运行
复制
import numpy as np

res = np.prod(A, axis=0)

array([ 0.03015  ,  0.3963882,  0.071071 ])
票数 12
EN

Stack Overflow用户

发布于 2018-05-22 21:24:37

您可以使用,

代码语言:javascript
运行
复制
In [5]: A = [[0.45, 0.89, 0.91], [0.5, 0.78, 0.55], [0.134, 0.571, 0.142]]

In [6]: [a*b*c for a,b,c in zip(*A)]
Out[6]: [0.030150000000000003, 0.39638819999999997, 0.071071]
票数 3
EN

Stack Overflow用户

发布于 2018-05-22 21:23:10

使用numpy:

代码语言:javascript
运行
复制
import numpy
A = numpy.array([[0.45, 0.89, 0.91], [0.5, 0.78, 0.55], [0.134, 0.571, 0.142]])
result = numpy.product(A, axis=0)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50468792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档