组合方差的矢量化计算

2024-04-25 03:37:15 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个n X m矩阵,其条目Xi,j,则compositional variance是一个m X m矩阵,其条目i,j包括表达式

k=1n[ln2(xk,i/xk,j)]

(包括其他易于计算的表达式)。你知道吗

这在循环中很容易计算,但是如何使用矢量化计算它呢?你知道吗


下面是糟糕的循环代码:

x = np.array([[1, 2, 3], [4, 5, 6]], dtype=float)

v = np.zeros((3, 3))

for i in range(3):
    for j in range(3):
        for k in range(2):
            v[i, j] += np.log(x[k, i] / x[k, j])**2

Tags: 代码infor表达式np条目range矩阵
1条回答
网友
1楼 · 发布于 2024-04-25 03:37:15

假设你的意思是(np.log(x[k, i] / x[k, j])**2)在NumPy术语中,为k = 1:n求和,一种向量化的方法可以用^{}-

((np.log(x[:,:,None]/x[:,None])**2)).sum(0)

相关问题 更多 >