You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

统计NumPy数组每行的True-False转换次数

统计二维布尔数组每行True到False的转换次数

可以利用NumPy的向量式操作实现高效计算,无需循环遍历每行,具体实现如下:

解决方案代码

import numpy as np

a = np.array([[True, False,  True,  False,  True],
              [True , True,  True , True,  True],
              [True , True ,False, False ,False],
              [False, True , True,  False,  False],
              [True , True ,False, True, False]])

# 按行计算相邻元素的差值
diff_arr = np.diff(a, axis=1)
# 统计每行中True→False的转换次数(对应diff结果为-1的位置)
count = np.sum(diff_arr == -1, axis=1)

print(count)  # 输出: [2 0 1 1 2]

原理说明

  • np.diff(a, axis=1):按行计算数组中相邻元素的差值。由于布尔值在NumPy中本质是整数(True=1,False=0),True→False的转换对应后一个元素减前一个元素的结果为-1。
  • np.sum(diff_arr == -1, axis=1):按行统计差值等于-1的元素数量,即为每行中True到False的转换次数。

该方法完全基于NumPy的内置向量操作,避免了Python循环,在处理大型数组时能保持极高的运算效率。

内容的提问来源于stack exchange,提问作者Anton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 16:15:27