Как умножить позиции списка списков - PullRequest
0 голосов
/ 22 мая 2018

Как я могу умножить этот список на python:

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

 [0.03015,0.3961,0.071071]

Как я могу это сделать с помощью Python?

Ответы [ 4 ]

0 голосов
/ 22 мая 2018

Используйте zip и распечатайте список:

>>> [x*y*z for x, y, z in zip(*A)]
0 голосов
/ 22 мая 2018

Вы можете использовать почтовый индекс ,

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]
0 голосов
/ 22 мая 2018

Вы можете сделать это на чистом Python:

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:

import numpy as np

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

array([ 0.03015  ,  0.3963882,  0.071071 ])
0 голосов
/ 22 мая 2018

Используйте numpy:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...