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

将二元数值组合的numpy数组转换为布尔数组

将二元数值Numpy数组转换为布尔数组

针对仅包含两种不同数值的Numpy数组,你可以通过值比较的方式生成布尔数组——直接用astype(bool)的方式仅在0/1场景下有效,因为非0值都会被转为True,无法区分两种不同的非0数值。以下是几种实用方法:

方法1:基于唯一值的动态比较

如果不知道数组里的具体数值,先提取唯一值,再选择其中一个值作为True的对应项:

import numpy as np

# 示例数组
arr = np.array([1,4,1,1,1,4,4])
# 获取数组中的两个唯一值
unique_vals = np.unique(arr)
# 将等于第一个唯一值的元素转为True,其余为False
bool_arr = arr == unique_vals[0]
# 输出:[ True False  True  True  True False False]

# 如果想反过来映射,用第二个唯一值或者取反
bool_arr_reversed = arr == unique_vals[1]
# 或者 bool_arr_reversed = ~bool_arr

方法2:直接指定目标值(已知数值时)

如果你明确知道要把哪个值映射为True,直接写比较表达式即可:

arr = np.array([0,3,3,0,0,0,3])
# 将0转为True,3转为False
bool_arr = arr == 0
# 输出:[ True False False  True  True  True False]

方法3:用np.where显式映射

用np.where可以更清晰地定义映射规则,效果和值比较一致:

arr = np.array([0,3,3,0,0,0,3])
unique_vals = np.unique(arr)
bool_arr = np.where(arr == unique_vals[0], True, False)

这些方法不受具体数值限制,只要数组确实只有两种不同值,就能生成符合需求的布尔数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:14:58