对整数numpy数组进行位运算测试
我有一个二维的变量(一个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)