获取python中所有可能的单个字节
我试图生成所有可能的字节来测试机器学习算法(8-3-8壁画网络编码器)。有没有一种方法可以在python中不使用8个循环来实现这一点 排列有帮助吗 我更喜欢一种优雅的方式来做这件事,但我会尽我所能 期望输出:获取python中所有可能的单个字节,python,byte,combinations,Python,Byte,Combinations,我试图生成所有可能的字节来测试机器学习算法(8-3-8壁画网络编码器)。有没有一种方法可以在python中不使用8个循环来实现这一点 排列有帮助吗 我更喜欢一种优雅的方式来做这件事,但我会尽我所能 期望输出: [0,0,0,0,0,0,0,0] [0,0,0,0,0,0,0,1] [0,0,0,0,0,0,1,0] [0,0,0,0,0,0,1,1] [0,0,0,0,0,1,0,0] [0,0,0,0,0,1,0,1] . . . [1,1,1,1,1,1,1,1] 您可以迭代这些数字,然后
[0,0,0,0,0,0,0,0]
[0,0,0,0,0,0,0,1]
[0,0,0,0,0,0,1,0]
[0,0,0,0,0,0,1,1]
[0,0,0,0,0,1,0,0]
[0,0,0,0,0,1,0,1]
.
.
.
[1,1,1,1,1,1,1,1]
您可以迭代这些数字,然后将其转换为二进制:
[bin(x)[2:] for x in range(256)]
是的,有
[……]
如果你碰巧已经在使用numpy
In [48]: import numpy as np
In [49]: nbits = 4
In [50]: np.sign(np.bitwise_and(2 ** np.arange(nbits), np.arange(2 ** nbits).reshape(-1, 1)))
Out[50]:
array([[0, 0, 0, 0],
[1, 0, 0, 0],
[0, 1, 0, 0],
[1, 1, 0, 0],
[0, 0, 1, 0],
[1, 0, 1, 0],
[0, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 0, 1],
[1, 1, 0, 1],
[0, 0, 1, 1],
[1, 0, 1, 1],
[0, 1, 1, 1],
[1, 1, 1, 1]])
而且,秩序并不重要!只是为了让我每个人都有一个@再次感谢DSM,我没注意。
(1, 1, 1, 1, 1, 1, 1, 0),
(1, 1, 1, 1, 1, 1, 1, 1)]
[[x>>b&1 for b in range(8)] for x in range(256)]
In [48]: import numpy as np
In [49]: nbits = 4
In [50]: np.sign(np.bitwise_and(2 ** np.arange(nbits), np.arange(2 ** nbits).reshape(-1, 1)))
Out[50]:
array([[0, 0, 0, 0],
[1, 0, 0, 0],
[0, 1, 0, 0],
[1, 1, 0, 0],
[0, 0, 1, 0],
[1, 0, 1, 0],
[0, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 0, 1],
[1, 1, 0, 1],
[0, 0, 1, 1],
[1, 0, 1, 1],
[0, 1, 1, 1],
[1, 1, 1, 1]])