我试图从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数组的表达式会比字符串连接更快,但是因为我无法使它工作但我还没有能够进行基准测试; )
答案 0 :(得分:0)
为什么不在构建x的同时构建y?
也就是说,当代码执行x.append(bit)
时,它也会执行y = 2*y + bit
。