对整数numpy数组进行位运算测试

1 投票
1 回答
753 浏览
提问于 2025-04-18 17:49

我有一个二维的变量(一个numpy的掩码数组,每个元素代表一个“像素”),这些像素的值是整数,我需要把它们当成二进制来读取,以便“解包”里面的信息(比如,位0代表这个,位1到3代表那个,等等)。

我最终想用numpy的“where”函数来测试每个像素是否满足某些条件。

我可能需要把这些整数转换成它们的二进制表示。

举个例子,检查位4到6的值是否是'101':

np.where(my_array_of_binaries_as_strings[-7:-4] == '101', True, False)

有没有简单有效的方法可以把一个包含十进制数(整数或短整数)的numpy数组转换成二进制表示的数组(可以是字符串、列表、整数等等)?因为python的“bin”函数不能直接作用于数组。

提前谢谢大家!;)

1 个回答

3

我觉得你根本不需要把它们转换成字符串。你可能可以这样做:

target      = 0b00010100
target_mask = 0b00011100

np.where(my_array_of_binaries & target_mask == target, True, False)

撰写回答