Python - Как создать новый массив сумм продуктов из одного значения массива, умноженного на все значения другого - PullRequest
0 голосов
/ 15 октября 2018

Например, у меня есть эти два массива:

a = [1,3,5,7,9] b = [2,4,6]

Я хочу добавитьсумма произведений, умножающая каждое значение массива a на каждое значение массива b.В итоге получается новый массив, который будет выглядеть следующим образом.

[12, 36, 60, 84, 108]

Я получаю так:

a = [1,3,5,7,9]
b = [2,4,6]
ab = []                     
for i in range(len(a)):
    for j in range(len(b)):
        ab.append(a[i]*b[j])
print(ab)

НоНе знаете, как добавить продукты.

Спасибо за совет!

Ответы [ 4 ]

0 голосов
/ 15 октября 2018

Обязательный NUMPY решение

import numpy as np
a = np.array([1,3,5,7,9])
b = np.array([2,4,6])
np.sum(a[:,None]*b[None,:], axis=1)

Выход

array([ 12,  36,  60,  84, 108])
0 голосов
/ 15 октября 2018

Вы хотели умножить каждый элемент в a на сумму (b)?Этот код сделает это за вас.

a = [1,3,5,7,9]
b = [2,4,6]
b_sum = sum(b)
ab = [x * b_sum for x in a]
0 голосов
/ 15 октября 2018

Почему бы тогда не это:

[i*sum(b) for i in a]

Демонстрация:

a = [1,3,5,7,9]
b = [2,4,6]
print([i*sum(b) for i in a])

Вывод:

[12, 36, 60, 84, 108]
0 голосов
/ 15 октября 2018
[sum(i*j for j in b) for i in a]
#[12, 36, 60, 84, 108]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...