python - 根据多个条件计算 ndarray 中某个项目的出现次数?

标签 python numpy

如何在 np.count_nonzero 函数中指定多个条件。

这用于计算数组内具有两个值之间的值的数字。我知道你可以减去两个单独的 count_nonzero 行的结果。但我想知道是否有一种简单的方法可以将多个条件传递给 np.count_nonzero。

import numpy as np

array = np.array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                  [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
                  [0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0],
                  [0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 0],
                  [0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0],
                  [0, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 5, 4, 3, 2, 0],
                  [0, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 0],
                  [0, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 5, 4, 3, 2, 0],
                  [0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0],
                  [0, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 0],
                  [0, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0],
                  [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0],
                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

# Count occurences of values between 5 and 8  in array.
result1 = np.count_nonzero(array <= 8)
result2 = np.count_nonzero(array <= 5)
result = result 1 - result2

我想知道是否有一种类似的方法:

np.count_nonzero(array >= 6 and array <= 8)

最佳答案

这就是您要找的吗:

np.count_nonzero(np.logical_and(array>=5, array<=8))
#24

关于python - 根据多个条件计算 ndarray 中某个项目的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58412493/

相关文章:

python - 如何用seaborn热图中的词汇填充xticklabels?

python - 打印字典保存到文件中,然后复制到py文件中使用?

python - 根据其他列表的一些属性创建一个列表

python - 拟合双极 sigmoid python

python - curve_fit 包含 numpy 数组的 2D 函数 --> 形状 (3,3,9) 和 (3,1) 未对齐 : 9 (dim 2) ! = 3 (dim 0)

python - 如何求 NumPy 数组的元素模

python - 如何获得Python的等价物[:-1] in django ORM?

python - Python中针对程序的重要部分延迟键盘中断

python - 使用 Dask 数组和/或 h5py 进行循环

python - Python 中的矩阵逆