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? Thanks for your help Robert Elsner
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:
participants (3)
-
josef.pktd@gmail.com
-
Robert Elsner
-
Skipper Seabold