如何在Python中有效地将32位整数转换为4个8位整数数组?
目前我有以下代码,这是超慢的:
def convert(int32_val):
bin = np.binary_repr(int32_val, width = 32)
int8_arr = [int(bin[0:8],2), int(bin[8:16],2),
int(bin[16:24],2), int(bin[24:32],2)]
return int8_arr
例如:
print convert(1)
>>> [0, 0, 0, 1]
print convert(-1)
>>> [255, 255, 255, 255]
print convert(-1306918380)
>>> [178, 26, 2, 20]
我需要在无符号32位整数上实现相同的行为。
另外。对于32位整数的大型numpy数组,是否可以将其矢量化?
在我的测试中,仅仅使用python内置的division和module就可以提供6倍的加速。
在Python 3.2及更高版本中,有一个新的} 也可以使用:
int
方法^{使用
dtype
如中所述: http://docs.scipy.org/doc/numpy/reference/generated/numpy.dtype.html或者根据你的情况改编:
比较
关于http://docs.scipy.org/doc/numpy/user/basics.rec.html的更多文档
获取4字节的二维数组的一种方法是:
同样的想法,但更紧凑:
相关问题 更多 >
编程相关推荐