Ho il seguente 2D-array:NumPy sottrarre/aggiungere serie 1d dalla matrice 2D
a = array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12],
[13, 14, 15]])
e un altro 1D-array:
b = array([ 1, 2, 3, 4, 5])
poi voglio calcolare qualcosa come
c = a - b
con l'intento di ottenere:
c = array([[0, 1, 2],
[2, 3, 4],
[4, 5, 6],
[6, 7, 8],
[8, 9, 10]])
ma invece ricevo il seguente messaggio di errore:
Traceback (most recent call last):
Python Shell, prompt 79, line 1
ValueError: operands could not be broadcast together with shapes (5,3) (5,)
ho letto le regole di trasmissione, ma hanno ragione't ottenere qualsiasi più saggio. Potrei fare un workaround con for-loops o simili ma dovrebbe esserci un modo diretto. Grazie
Do 'a - b [:, Nessuno] 'o' a - b [:, np.newaxis] ', converti' b' in un array 2D aggiungendo una dimensione e poi esegui la sottrazione. – Divakar
@Divakar dovresti dare una risposta al tuo commento. –
Non è una domanda di base come questa trattata prima su 'SO'? DUP-martello? :) – Divakar