如何以不匹配的维数进行矢量化

问题描述 投票:0回答:1

我有一些限制,形式为>>

A_{i,j,k} = r_{i,j}B_{i,j,k}

Anxmxp矩阵,与B一样。rnxm矩阵。

我想以某种方式尽可能有效地在Python中向量化它。现在,我通过说rnxmxp变成r_{i,j,k} = r_{i,j} for all 1 <= k <= p矩阵。然后,我在np.multiplyr上调用B。这似乎效率低下。任何想法都欢迎,谢谢。

def ndHadamardProduct(r, n, m, p): #r is a n x m matrix, p is an int
    rnew = np.zeros(n, m, p)
    B = np.zeros(n, m, p)
    for i in range(n):
        for j in range(m):
            for k in range(p):
                r[i, j, k] = r[i, j]
                B[i, j, k] = random.uniform(0, 1)
    return np.multiply(r, B)

我有一些约束,形式为A_ {i,j,k} = r_ {i,j} B_ {i,j,k} A是nxmxp矩阵,B也是。r是nxm矩阵。我想以某种方式尽可能有效地在Python中向量化它。 ...

python numpy vectorization matrix-multiplication
1个回答
0
投票

np.newaxis添加一个额外的尺寸,然后broadcasting为您处理重复。

© www.soinside.com 2019 - 2024. All rights reserved.