提问人:Qwerth 提问时间:7/21/2023 更新时间:7/21/2023 访问量:45
numpy.uint():将浮点数转换为 uint 给出 [完全] 不同的大数字结果
numpy.uint(): transform float to uint gives [Totally] different results with large numbers
问:
我正在试验和numpy.uint()
numpy.around()
这是我所做的:
>>> matrix = np.matrix([-32, -32.0, -3.91886975727153e-15])
>>> matrix
matrix([[-3.20000000e+01, -3.20000000e+01, -3.91886976e-15]])
>>> np.uint(matrix)
...
matrix([[4294967264, 4294967264, 0]], dtype=uint32)
>>> np.around(matrix)
...
matrix([[-32., -32., -0.]])
>>> np.uint(np.around(matrix))
...
matrix([[4294967264, 4294967264, 0]], dtype=uint32)
同样的情况发生,但值不同:np.uint8
np.uint16
np.uint8(np.around(matrix))
matrix([[224, 224, 0]], dtype=uint8)
np.uint16(np.around(matrix))
matrix([[65504, 65504, 0]], dtype=uint16)
为什么 uint 函数会以这种方式工作?
答: 暂无答案
评论
u
uint
2**32-1
int
uint