Numpy用形状pnq铸造形状nm以得到形状pnmq?

ev7lccsx  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(112)

我试着用一种特殊的方法,把一个m x n矩阵和一个p x n x q矩阵进行转换。实际上,我想用m x n数组加上它所替换的元素来替换p x n x q数组的每个元素。形式上,给定mn矩阵X和pnq矩阵Y,我想填充一个qnmp(不是pmnq)numpy,使得,
This relation is True
如果不创建一个单独的数组并用上面的关系填充它,我该如何在numpy中做到这一点呢?

k7fdbhmy

k7fdbhmy1#

IIUC,对齐广播的轴,然后使用转置将轴移动到所需的输出形状。

import numpy as np

M, N, P, Q = 2, 3, 4, 5
X = np.arange(M * N).reshape(M, N)
Y = np.arange(P * N * Q).reshape(P, N, Q)

# X: (1, M, N, 1)
# Y: (P, 1, N, Q)
# =============== Broadcast
# Z: (P, M, N, Q)
Z = X[None, :, :, None] + Y[:, None, :, :]

# Transpose the output array to achieve
# Z: (Q, N, M, P)
Z = Z.T

# Or alternatively do the transposing of X and Y first, then align axes.

相关问题