gpt4 book ai didi

python - Numpy 查找数组中列之间的一致性

转载 作者:行者123 更新时间:2023-11-30 22:02:31 25 4
gpt4 key购买 nike

我有来自“n”个不同的人对“m”个项目(0 或 1)进行评分的标签,因此是一个 m x n 数组。例如,3 人对 4 项进行评分:

arr = np.asarray([[1,1,1], [1,1,0], [0,0,0], [0, 1, 0]])
print(arr)
>>>
[[1 1 1]
[1 1 0]
[0 0 0]
[0 1 0]]

我想看看每个人都“同意”哪些项目,即该行中的所有值都是相同的。在此示例中,答案为 [True, False, True, False]。我用这个让它工作:

np.logical_or(arr.sum(axis=1) == n, arr.sum(axis=1) == 0)

有点老套。有什么更好的方法来做到这一点?

最佳答案

一种替代方法是沿行计算 diff,然后检查所有 diff 是否等于 0;这将确保一行中的所有元素都相同(并且可以不同于 0 和 1):

(np.diff(arr, axis=1) == 0).all(axis=1)
# array([ True, False, True, False], dtype=bool)

或者如果只有 0 和 1,那么:

(arr == 1).all(1) | (arr == 0).all(1)
# array([ True, False, True, False], dtype=bool)

arr.all(1) | ~arr.any(1)
# array([ True, False, True, False], dtype=bool)

关于python - Numpy 查找数组中列之间的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53772647/

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