【问题标题】:Performing bitwise tests on integer numpy arrays对整数 numpy 数组执行按位测试
【发布时间】:2014-10-12 19:59:02
【问题描述】:

我有二维变量(一个 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”不适用于数组。

提前感谢您! ;)

【问题讨论】:

  • 注意:整数和短裤不是小数。从概念上讲,它们只是数字;在实现中,它们是二进制的。显示时必须转换为十进制。

标签: python arrays numpy binary


【解决方案1】:

我认为您根本不需要将它们转换为字符串。您可能可以这样做:

target      = 0b00010100
target_mask = 0b00011100

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

【讨论】:

  • 确实,这很好用。此外,它相对较快并且支持掩码数组。谢谢!
  • @Guuix 顺便说一句,我忘记了 python 实际上有二进制文字。我已经更新了答案。
猜你喜欢
  • 1970-01-01
  • 2011-07-22
  • 2021-08-28
  • 2018-09-24
  • 2011-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
相关资源
最近更新 更多