gpt4 book ai didi

python - 如何仅使用 numpy 操作根据其他两个 numpy 数组的条件获取新的 numpy 数组?

转载 作者:行者123 更新时间:2023-12-05 06:51:40 28 4
gpt4 key购买 nike

假设我有 np.array of a = [0, 1, 1, 0, 0, 1]b = [1, 1, 0, 0, 0, 1]

我想要一个新矩阵 c 使得如果 a[i] = 0b[i] = 0 那么 c[i] = True

我试过使用 c = np.where(a == 0 & b==0) 但似乎这不适用于两个数组。

最终,我希望在不使用任何循环和外部库的情况下计算在两种情况下都为真的“0”和在这两种情况下都为真的“1”。请指教。

最佳答案

这是我的解决方案:

你的逻辑表达式只是 c = NOT (a OR b)。这意味着,只有当 a[i]b[i] 都为零时,您才需要 c[i] = True。 OR 可以通过将两个数组相加来实现。然后我们将数组转换为 bool 类型并将其反转。

import numpy as np

a = np.array([0, 1, 1, 0, 0, 1])
b = np.array([1, 1, 0, 0, 0, 1])

c = np.invert((a+b).astype('bool'))

如果你想计算零的数量,你可以简单地执行

n_zeros = np.sum(c)

更通用的解决方案:

如果你想要你的数组 c[i] = True 如果 a[i] == a0 和 b[i] == b0,你可以这样做:

c = (a == a0) & (b == b0)

条件 a == a0b == b0 分别返回一个 bool 数组,其中包含每个单独数组元素的条件真值。按位运算符 & 执行按元素逻辑与。有关更多按位运算符,请参阅 https://wiki.python.org/moin/BitwiseOperators .

关于python - 如何仅使用 numpy 操作根据其他两个 numpy 数组的条件获取新的 numpy 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66116465/

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