Reputation: 13
Let's say I have two arrays:
a = [
[[-1, 0, 1],
[-2, 0, 2],
[-3, 0, 3]],
[[-4, 0, 4],
[-5, 0, 5],
[-6, 0, 6]]
]
and
b = [
[1, 3, 5],
[7, 11, 13]
]
I'm trying to find the most elegant way to end up with the output
c = [
[[-1, 0, 1],
[-6, 0, 6],
[-15, 0, 15]],
[[-28, 0, 28],
[-55, 0, 55],
[-78, 0, 78]]
]
Is there some sort of function in numpy that can handle this elegantly?
I've browsed the documentation for np.multiply() and np.dot() and I haven't found a nice way to do it with those functions. I've suppose I could make some sort of ugly for loop to do it in, but I'm hoping for something more elegant.
Upvotes: 1
Views: 30
Reputation: 351
you can do it using broadcasting
firstly you need to check for the shapes of the array if they are not the same so you can board casting
c= a[:, :, None] * b[None, :, :]
print(c)
Upvotes: 0