我的问题是:给定一个浮点数,numpy
中的最小类型是什么?考虑下面的例子:
dt = datetime.datetime(2018, 8, 1, 17, 32, 53, 966819)
dt_unix = dt.timestamp()
print(dt_unix)
print(np.float32(dt_unix))
print(np.float64(dt_unix))
print(np.finfo(np.float32).precision)
输出为:
1533115973.966819
1533116000.0
1533115973.966819
6
很明显,np.float32
似乎无法容纳它,但我怎么知道在以前的文章中?毕竟,建议的精度是6。所以一般来说,一个特定类型的范围是多少,例如np.float32
,这个类型的精度是多少。你知道吗
整数
^{} 提供有关数据类型的各种信息。我发现这里使用
epsneg
最方便:它是最小的数字x,因此1-x的表示形式不同于1。只要N和N-1是不同的,就可以精确地表示整数N。这意味着适合浮点格式的整数的上界是1/epsneg
:浮点数
这更为复杂,因为大多数实数,如
0.1
,并没有像NumPy那样精确地用浮点格式表示。我们可以先尝试最精确的可用格式,然后检查它是否仍然以相同的方式用较小的格式表示。你知道吗所以,这个数字精确地用float32表示,而不是float16。你知道吗
再说一次,这主要是理论上的,因为如果这个数字不是专门为这个演示创建的,我们可能每次都会出错:所有浮点表示都可能涉及舍入错误。你知道吗
相关问题 更多 >
编程相关推荐