如何将numpy.any输出的布尔数组转换为显式标注dtype=bool的ndarray
解决方法
你可以通过以下两种方案实现需求,得到的数组本身dtype为标准bool类型,打印时会自动携带dtype=bool标注:
- 方法1:用
np.asarray显式指定dtype,无额外内存开销
原数组本身已经是bool类型的情况下,该方法不会创建新副本,仅做dtype显式声明,效率最高:
import numpy as np my_array = np.asarray(my_array, dtype=bool)
- 方法2:用
astype强制转换类型
需要确保类型完全重置时可以用这个方法,不需要副本的话可将copy参数设为False:
my_array = my_array.astype(dtype=bool, copy=True)
补充说明:numpy默认打印数组时,如果数组dtype和平台默认布尔类型一致,会省略dtype标注,只要显式指定一次dtype为bool,就会触发打印时的dtype显示逻辑。
如果只是需要临时打印出带dtype=bool的效果、不想修改原数组,可以直接格式化输出:
print(f"{repr(my_array)[:-1]}, dtype=bool)")
内容的提问来源于stack exchange,提问作者Alexis
相关产品推荐
相关产品推荐

