假设我有一个包含n元素的numpy向量,因此我想将该向量中的数字编码为二进制表示法,因此得到的形状将是(n,m),其中m是log2(maxnumber),例如:
因为我有的最大数是67,所以我需要numpy.ceil(numpy.log2(67)) == 7位来编码这个向量,所以结果的形状将是(3,7)
这个问题之所以出现,是因为我没有快速的方法将二进制表示法从
numpy数组的函数numpy.binary_repr。现在我必须迭代结果,并将每一位分别放入:
这是非常耗时和愚蠢的方式,如何使其高效?
发布于 2016-09-20 03:00:09
以下是使用np.unpackbits和广播的一种方法:
发布于 2016-09-20 03:00:19
您可以使用numpy字节字符串。
对于您手头的案例:
或者更紧凑地说
https://stackoverflow.com/questions/39580110
复制相似问题