提问人:David Jackson 提问时间:9/25/2020 最后编辑:GeorgyDavid Jackson 更新时间:9/26/2020 访问量:55
计算两个 NumPy 数组在相应索引处给定项目的出现次数
Count occurrences of two NumPy arrays having given items at corresponding indices
问:
我有两个 NumPy 数组,如下所示:
import numpy as np
a = np.array([2, 1, 1, 2, 0, 2, 2, 2, 1, 1])
b = np.array([4, 3, 4, 4, 3, 3, 4, 3, 4, 3])
我想计算数组中遇到某个项目的次数,条件是该数组在相应索引处有项目:2
a
b
4
a = np.array([2, 1, 1, 2, 0, 2, 2, 2, 1, 1])
b = np.array([4, 3, 4, 4, 3, 3, 4, 3, 4, 3])
↑ ↑ ↑
如您所见,有 3 种这样的情况。我该如何计算?
答:
1赞
Georgy
9/26/2020
#1
您可以按如下方式实现它:
import numpy as np
a = np.array([2, 1, 1, 2, 0, 2, 2, 2, 1, 1])
b = np.array([4, 3, 4, 4, 3, 3, 4, 3, 4, 3])
result = ((a == 2) & (b == 4)).sum()
print(result)
# 3
a == 2
并将在项目分别等于 2 和 4 时使用值创建布尔数组:b == 4
True
>>> a == 2
array([ True, False, False, True, False, True, True, True, False, False])
>>> b == 4
array([ True, False, True, True, False, False, True, False, True, False])
通过使用逻辑和运算符,我们将得到一个布尔数组,其中两个项目都是:&
(a == 2) & (b == 4)
True
True
>>> (a == 2) & (b == 4)
array([ True, False, False, True, False, False, True, False, False, False])
要计算值的总数,我们可以使用 sum
方法。True
引用:
评论