ndarray español delete array python numpy

python - español - ¿Cómo multiplicar la matriz numpy 2D con la matriz numpy 1D?



reshape python (2)

Las dos matrices:

a = numpy.array([[2,3,2],[5,6,1]]) b = numpy.array([3,5]) c = a * b

Lo que quiero es:

c = [[6,9,6], [25,30,5]]

Pero, estoy recibiendo este error:

ValueError: operands could not be broadcast together with shapes (2,3) (2)

¿Cómo multiplicar una matriz nD con una matriz 1D, donde len(1D-array) == len(nD array) ?


Otra estrategia es reshape la segunda matriz, para que tenga la misma cantidad de dimensiones que la primera matriz:

c = a * b.reshape((b.size, 1)) print(c) # [[ 6 9 6] # [25 30 5]]

Alternativamente, el atributo de shape de la segunda matriz se puede modificar in situ:

b.shape = (b.size, 1) print(a.shape) # (2, 3) print(b.shape) # (2, 1) print(a * b) # [[ 6 9 6] # [25 30 5]]


numpy.newaxis convertir la matriz b en una matriz de forma (2, 1), use Ninguno o numpy.newaxis en la tupla de índice:

import numpy a = numpy.array([[2,3,2],[5,6,1]]) b = numpy.array([3,5]) c = a * b[:, None]

Aquí está el document .