我的整数范围是0..2**m - 1
,我想将它们转换为length的二进制numpy数组m
。例如,说m = 4
。现在15 =1111
为二进制,因此输出应为(1,1,1,1)
。 2 = 10
以二进制形式,因此输出应为(0,0,1,0
)。如果m
是3
则2
应该转换(0,1,0)
。
我试过了,np.unpackbits(np.uint8(num))
但是没有给出正确长度的数组。例如,
np.unpackbits(np.uint8(15))
Out[5]: array([0, 0, 0, 0, 1, 1, 1, 1], dtype=uint8)
我想要一种适用m
于代码中所有内容的方法。
您应该能够对此进行矢量化处理,例如
>>> d = np.array([1,2,3,4,5])
>>> m = 8
>>> (((d[:,None] & (1 << np.arange(m)))) > 0).astype(int)
array([[1, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[1, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0],
[1, 0, 1, 0, 0, 0, 0, 0]])
它只是获得适当的位权重,然后按位取和:
>>> (1 << np.arange(m))
array([ 1, 2, 4, 8, 16, 32, 64, 128])
>>> d[:,None] & (1 << np.arange(m))
array([[1, 0, 0, 0, 0, 0, 0, 0],
[0, 2, 0, 0, 0, 0, 0, 0],
[1, 2, 0, 0, 0, 0, 0, 0],
[0, 0, 4, 0, 0, 0, 0, 0],
[1, 0, 4, 0, 0, 0, 0, 0]])
有很多方法将其转换为1秒无论它是非零的(> 0)*1
,.astype(bool).astype(int)
等我选择了一个基本上是随机的。
问题内容: 当将int转换为二进制时,如何将其输出为8个字符,当前仅显示1且缺少7个零 码 示例输出到0000 0001 问题答案: 我不确定这是否是您的意思,但是类似 会产生
问题内容: 为了将整数转换为二进制,我使用了以下代码: 什么时候擦除“ 0b”,我用这个: 我能做些什么,如果我想展现的,而不是? 问题答案: 仅说明格式化字符串的部分: 将变量放入字符串 将变量放在参数位置0 为该变量添加格式设置选项(否则它将代表小数) 将数字格式化为左侧零填充的八位数字 将数字转换为其二进制表示形式 如果您使用的是Python 3.6或更高版本,则还可以使用f字符串:
此函数接收一个整数作为参数,并应返回一个列表,该列表表示与二进制表示的值相同的位列表,其中列表中的第一个元素是最有效(最左边)的位。 我的函数当前输出数字11的,我需要来代替。 例如,
问题内容: 我正在尝试将一个数字从一个整数转换为另一个整数,如果以十六进制打印,它将看起来与原始整数相同。 例如: 将20转换为32(即0x20) 将54转换为84(即0x54) 问题答案: 即,将原始数字视为十六进制,然后将其转换为十进制。
据我所知,这不是一个重复的问题。我将在下面列出相关但不同的问题。 下面是我试图运行的代码,将一个int数组转换为二进制,作为一个单一的矢量化操作: ...嗯...我实际上是在一个“整数标量数组”上操作。(并且将更改为类似于没有效果。) 我意识到可以通过循环(Python 2问题)或列表理解来做到这一点(我知道产生字符串),所以...这篇文章更多的是一个问题:为什么我不能作为一个单一的矢量化操作来做
问题内容: HTML5使您可以在本地存储数据,我认为这很好。例如,这是如何使用它: 在html中,您可以通过将图片的源设置为以下内容来动态显示图片: 所以我的问题是 如何将二进制数据转换为base64字符串,以便可以利用html5本地存储? 例如,如果我可以: 我知道我可以通过使用html5将图像包装在画布上并将其转换为base64string来解决此问题。我也可以在服务器上进行特定的服务,该服务