[Numpy-discussion] Multiply along axis
Wed Jun 29 09:38:38 CDT 2011
On Wed, Jun 29, 2011 at 10:32 AM, Robert Elsner <firstname.lastname@example.org> wrote:
> Hello everyone,
> I would like to solve the following problem (preferably without
> reshaping / flipping the array a).
> Assume I have a vector v of length x and an n-dimensional array a where
> one dimension has length x as well. Now I would like to multiply the
> vector v along a given axis of a.
> Some example code
> a = np.random.random((2,3))
> x = np.zeros(2)
> a * x # Fails because not broadcastable
> So how do I multiply x with the columns of a so that for each column j
> a[:,j] = a[:,j] * x
> without using a loop. Is there some (fast) fast way to accomplish that
> with numpy/scipy?
Is this what you want?
a * x[:,None]
a * x[:,np.newaxis]
or more generally
a * np.expand_dims(x,1)
More information about the NumPy-Discussion