我有一个64位无符号整数的大numpy数组(即大约2**32个位置),我想在这个数组中的每个整数中复制一个位(可以从0到63)。你知道吗
示例:
array([ 0, 5, 2, 7 ])
0
二进制输入是
000 101 010 111
手术后,我想把钻头
0000 1011 0100 1111
array([ 0, 11, 4, 15 ])
如前所述,我的数组很大,所以我更喜欢使用数量最少的临时/辅助数组。你知道吗
我试着在Google或者甚至Bit Twiddling Hacks上找到一些与之相近的东西,但运气不好。你知道吗
提前谢谢!你知道吗
实施
这种天真的方式在我看来已经相当有效了:
基准
我运行代码如下:
位复制耗时0.95秒(平均几次运行)。 由于内存问题,我只使用了2个27条目。但我们可以预计2个32条目的时间为232-27×0.95s=25×0.95s=32×0.96s=30.4s。你知道吗
相关问题 更多 >
编程相关推荐