nad*_*ine 4 python arrays numpy
因此,我试图将我的float numpy数组转换为整数。但是当我这样做时:
array.astype(np.uint64)
Run Code Online (Sandbox Code Playgroud)
它改变了这个数组:
[ 550. 514. 451. 494. 490. 500. ...]
Run Code Online (Sandbox Code Playgroud)
对此:
[549 513 450 493 489 499 ... ]
Run Code Online (Sandbox Code Playgroud)
因此,我想知道你们中的任何人是否对此有一个想法?我必须获得np.uint64我接下来使用的代码的输出。
先感谢您。
小智 5
正如评论中所说,转换为整数不会舍入,它只会截断非整数部分。550.实际出现在控制台输出中的float 可能549.999999999会被截断为549。在类型转换之前使用四舍五入。一个例子:
>>> a = np.array([5, 6, 7], dtype=float) - 1e-12
>>> a
array([ 5., 6., 7.])
>>> a.astype(np.uint64)
array([4, 5, 6], dtype=uint64)
>>> np.around(a).astype(np.uint64)
array([5, 6, 7], dtype=uint64)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2059 次 |
| 最近记录: |