Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将十进制数转换为布尔数组_Python_Python 3.x_List - Fatal编程技术网

Python 将十进制数转换为布尔数组

Python 将十进制数转换为布尔数组,python,python-3.x,list,Python,Python 3.x,List,在Python3.8中,我希望获取一个始终介于0和8之间的整数,并将其转换为一个数组,每个二进制数字都有一个布尔表示。我想出了一个办法,但我觉得这是一个相当迂回的方式来得到我想要的: import numpy as np curInput = 5 myArray = np.array(list(map(int, list(f"{curInput:08b}"))),dtype='bool').tolist() 上面创建了[False,False,False,False,Fa

在Python3.8中,我希望获取一个始终介于0和8之间的整数,并将其转换为一个数组,每个二进制数字都有一个布尔表示。我想出了一个办法,但我觉得这是一个相当迂回的方式来得到我想要的:

import numpy as np

curInput = 5
myArray = np.array(list(map(int, list(f"{curInput:08b}"))),dtype='bool').tolist()

上面创建了[False,False,False,False,False,True,False,True],这正是我需要的。我需要数组的大小始终为8,但它确实感觉太复杂了。

一次性创建一个数组

bits = np.array([128, 64, 32, 16, 8, 4, 2, 1])
之后

(bits & value) != 0

将为您提供任何值所需的数组。

一次性创建一个数组

bits = np.array([128, 64, 32, 16, 8, 4, 2, 1])
之后

(bits & value) != 0

将为您提供任何值所需的数组。

[bit==1表示f{curInput:08b}中的位]?获取布尔值不需要往返于numpy数组。这是一种正确的方法,无需转换为字符串并返回,也无需使用numpy:[boolcurInput&1@zvone字符串的出现时间要快得多。问题是映射到int。只需直接映射到布尔值。listmaplambda x:x==1,f{curInput:08b},这与jon的list comp相同。f字符串的额外强制转换也不是必需的-duck键入FTW!@jornsharpe我实际上想知道这是否可能是真的。感谢共享该信息:[bit==1表示f{curInput:08b}中的位]?获取布尔值不需要往返于numpy数组。这是一种正确的方法,无需转换为字符串并返回,也无需使用numpy:[boolcurInput&1@zvone字符串的出现时间要快得多。问题是映射到int。只需直接映射到布尔值。listmaplambda x:x==1,f{curInput:08b},这与jon的list comp完全相同。f字符串的额外强制转换也不是必需的-duck键入FTW!@jornsharpe我实际上想知道这是否可能是真的。感谢分享这些信息:bits=1@zvone是的。键入整数比确保所有括号都正确更快。这是原始的poster需要16位,我会这样做的。bits=1@zvone是的。键入整数比确保所有括号都正确更快。如果需要16位,我会这样做。