[Numpy-discussion] Multiply along axis
Wed Jun 29 10:05:20 CDT 2011
Yeah great that was spot-on. And I thought I knew most of the slicing
tricks. I combined it with a slice object so that
idx_obj = [ None for i in xrange(a.ndim) ]
idx_obj[axis] = slice(None)
a * x[idx_object]
works the way I want it. Suggestions are welcome but I am happy with the
quick solution you pointed out. Thanks
On 29.06.2011 16:38, Skipper Seabold wrote:
> 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)
> NumPy-Discussion mailing list
More information about the NumPy-Discussion