如果我有一个16字节的字符串,如何将它转换为numpy中的2 uint64数组? (指定little-endian或big-endian)
答案 0 :(得分:3)
IIUC,您可以使用np.fromstring
:
>>> n = range(16)
>>> s = ''.join(map(chr, n))
>>> np.fromstring(s, dtype=np.uint64)
array([506097522914230528, 1084818905618843912], dtype=uint64)
>>> sum((256**i)*x for i,x in enumerate(n[:8]))
506097522914230528L
>>> sum((256**i)*x for i,x in enumerate(n[8:]))
1084818905618843912L
虽然你必须自己翻转字节序。而且它更多的是转换而非演员,尽管人们经常使用非常松散的演员。