【问题标题】:How can I convert a numpy to a binary (size 8 bits)如何将 numpy 转换为二进制(大小 8 位)
【发布时间】:2020-03-27 15:24:36
【问题描述】:

我正在寻找一种动态方式来执行 numpy 转换(整数到二进制)。
我尝试使用 'astype' 方式,但没有成功。

我得到了一个像这样的 3-dim 矩阵:

x = np.array([[[1, 2, 44],[1,5,3]],[[7, 88, 12],[1,15,60]]])

我想将 x 的每个值转换为其二进制形式(最大 8 位) 例如,如果 x 包含 6,它将被转换为 '00000110'。

这是如何根据需要将整数转换为二进制的参考:
Converting integer to binary in python

【问题讨论】:

  • 您需要的不是类型转换(这就是astype 不起作用的原因),而是数组中数字的字符串表示形式(十进制转换为二进制)
  • bin(或任何等价物)必须应用于每个数组元素。没有编译方法可以一次对整个数组执行此操作。

标签: python numpy multidimensional-array numpy-ndarray


【解决方案1】:

这是你要找的吗?

vfunc = np.vectorize(lambda i: '{0:08b}'.format(i))
x_bin = vfunc(x)

print(x_bin)的输出:

[[['00000001' '00000010' '00101100']
  ['00000001' '00000101' '00000011']]

 [['00000111' '01011000' '00001100']
  ['00000001' '00001111' '00111100']]]

【讨论】:

  • @user5650029 这能回答你的问题吗?
猜你喜欢
  • 2018-09-15
  • 2018-06-24
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
相关资源
最近更新 更多