我明白那个numpy
无法处理非本机整数,但是如何将 python 高精度整数存储为array
本机整数(以任一字节序)?例如
a = 105951305240504794066266398962584786593081186897777398483830058739006966285013
不能存储为本机整数,因为它是256
少量。但它可以存储为
A = array([18196013122530525909, 15462736877728584896,
12869567647602165677, 16879016735257358861], dtype=uint64)
使用小端(即a == A[0] + A[1]<<64 + A[2]<<128 + A[3]<<192
) or A[::-1]
作为大端字节序。我怎样才能从a
to A
here?
我想将这个“python-side”数字转换为“numpy-side”,以便我可以在其上运行高效的算法(例如使用傅里叶变换进行快速乘法).
我相信Python内部应该已经使用了类似的结构。我需要做的就是将它“暴露”给numpy
,但我不确定确切的结构或如何“暴露”它。最直接的方法当然是使用while
loop:
A = np.zeros(4, 'uint64')
i = 0
while a > 0:
A[i] = a & (2**64-1)
a >>= 64
i += 1
但我想知道是否有更“本地”或“有效”的方法?
感谢您的帮助!
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)