在python3中从numpy数组创建bitstring

时间:2016-02-16 16:45:25

标签: python python-3.x numpy binary

我试图从1和0的numpy数组中创建一个整数,我需要快速完成,因为我将会执行多达4亿个。

x = numpy.array([1, 0, 1, 0, 0])
y = integer representation of x

numpy数组可以创建类型字符串,即

x=numpy.array(['1', '0', '1', '0', '0'])

在运行之前,我还没有找到任何不涉及连接和类型转换的内容

int(bits_as_string, 2)

这似乎是很多开销。

我正构建一个NK景观,用于进化生物学项目。我有一个N位字符串,其中K与那些位相互作用,并且我在跳过许多其他箍之后为每个可能的位组合生成2 ^ N个性能值,以将各种权重附加到不同的交互。这就是我使用二进制数字的原因。我目前正在使用x作为列表,我附加了1和0。我试图改变它,以便x是一个numpy数组,我只是改变x [i]而不是附加到列表。我相信numpy数组的表达式会比字符串连接更快,但是因为我无法使它工作但我还没有能够进行基准测试; )

1 个答案:

答案 0 :(得分:0)

为什么不在构建x的同时构建y? 也就是说,当代码执行x.append(bit)时,它也会执行y = 2*y + bit