【发布时间】:2015-10-13 15:15:58
【问题描述】:
我想在 NumPy 中创建一个大小为 128x2 的二维数组,并在其中存储长整数(每个整数都有 128 位大小)。
代码:
keys = np.zeros(shape=(128, 2))
for i in range(0, 128):
key1 = random.randrange(1 << 127, 1 << 128)
key2 = random.randrange(1 << 127, 1 << 128)
keys[i, 0] = key1
keys[i, 1] = key2
print(keys)
随机密钥具有以下输出:
212325597117085680729458082297541802625
但是,当我打印我的键数组时,我得到了以下输出:
输出:
[[ 3.24916136e+38 1.88464325e+38]
[ 3.01375156e+38 2.73451722e+38]
[ 1.85204001e+38 2.47016718e+38]
[ 1.85813038e+38 2.66817805e+38]
[ 1.93774249e+38 2.62902937e+38]
[ 2.77003163e+38 2.13490918e+38]
[ 1.92502885e+38 3.28965325e+38]
[ 3.03869869e+38 2.27308256e+38]
[ 2.97958126e+38 2.50477741e+38]
[ 1.82747542e+38 2.17062238e+38]
[ 2.59264124e+38 3.17242510e+38]
[ 2.43152125e+38 3.33742346e+38]
etc
如何以原始格式打印密钥?
【问题讨论】:
-
numpy没有 128 位整数类型(至少,在我使用过的任何平台上都没有)。您究竟想如何将它们存储在您的阵列中?作为 Python 对象?作为字符串?您当前的代码使用双精度浮点数(64 位除以符号、尾数和指数),这将丢失相当多的最低有效位。 -
你看过 numpy.set_printoptions() 吗?
标签: python arrays python-3.x numpy