Esiste uno stile numpy per moltiplicare due array per elemento? [duplicare]
Sep 24 2020
Di seguito è riportato un esempio di un codice che esegue la moltiplicazione elementwise per due array 1D di dimensioni diverse e restituisce un nuovo array 2D desiderato:
a = np.array([1, 2, 3, 4])
b = np.array([1, 10, 100])
np.array(list(map(lambda a_i: a_i * b, a)))
>>> array([[ 1, 10, 100],
[ 2, 20, 200],
[ 3, 30, 300],
[ 4, 40, 400]])
Tuttavia, sono curioso, esiste una funzione numpy nativa per questo?
Risposte
1 Grismar Sep 24 2020 at 13:37
Hai due opzioni:
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([1, 10, 100])
c = a[:, None] * b
print(c)
d = np.outer(a, b)
print(d)
Risultati:
[[ 1 10 100]
[ 2 20 200]
[ 3 30 300]
[ 4 40 400]]
[[ 1 10 100]
[ 2 20 200]
[ 3 30 300]
[ 4 40 400]]