我有一些限制,形式为>>
A_{i,j,k} = r_{i,j}B_{i,j,k}
A
是nxmxp
矩阵,与B一样。r
是nxm
矩阵。
我想以某种方式尽可能有效地在Python中向量化它。现在,我通过说r
将nxmxp
变成r_{i,j,k} = r_{i,j} for all 1 <= k <= p
矩阵。然后,我在np.multiply
和r
上调用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中向量化它。 ...
np.newaxis
添加一个额外的尺寸,然后broadcasting为您处理重复。