On Tue, Feb 27, 2018 at 4:08 AM, Peter Otten <__pete...@web.de> wrote: > Seb wrote: > >> On Tue, 27 Feb 2018 12:25:30 +1300, >> Gregory Ewing <greg.ew...@canterbury.ac.nz> wrote: >> >>> Seb wrote: >>>> I was wondering is whether there's a faster way of multiplying each >>>> row (1x3) of a matrix by another matrix (3x3), compared to looping >>>> through the matrix row by row as shown in the code. >> >>> Just multiply the two matrices together. >> >>> If A is an nx3 matrix and B is a 3x3 matrix, then C = A @ B is an nx3 >>> matrix where C[i] = A[i] @ B. >> >>> (This is a property of matrix multiplication in general, nothing >>> special about numpy.) >> >> I think that's only true if B is the same for every row in A. In the >> code I posted, B varies by row of A. > > Yeah, you would have to substitute the N 3x3 matrices with an Nx3x3 tensor, > though I don't know if numpy provides an op such that > > Nx3 op Nx3x3 --> desired result > > or > > op(Nx3, Nx3x3) --> desired result
Nx1x3 @ Nx3x3 ought to do it, with the result being Nx1x3. -- https://mail.python.org/mailman/listinfo/python-list