gpt4 book ai didi

python - 每行 numpy 的非对角线元素的均值

转载 作者:行者123 更新时间:2023-12-04 01:23:28 29 4
gpt4 key购买 nike

我基本上有一个大小为 n x n 的混淆矩阵我所有的对角线元素都是 1 .

对于每一行,我希望计算其平均值,不包括 1 ,即不包括对角线值。是否有一种简单的方法可以在 numpy 中做到这一点? ?

这是我目前的解决方案:

mask = np.zeros(cs.shape, dtype=bool)
np.fill_diagonal(mask, 1)
print(np.ma.masked_array(cs, mask).mean(axis=1))

哪里 cs是我的 n x n矩阵

代码看起来很复杂,我当然觉得有一个更优雅的解决方案。

最佳答案

一个简洁的使用 summation ——

(cs.sum(1)-1)/(cs.shape[1]-1)

对于忽略对角元素的一般情况,使用 np.diag代替 1抵消 -
(cs.sum(1)-np.diag(cs))/(cs.shape[1]-1)

另一个与 mean ——
n = cs.shape[1]
(cs.mean(1)-1./n)*(n/(n-1))

关于python - 每行 numpy 的非对角线元素的均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62250799/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com