当我创造了一个新纪元时
c = np.ndarray((4, 5))
我得到:
^{pr2}$这对我来说很有趣,因为所有的值要么是超大的正的,要么是接近于零的,有时候我可以在那里得到NaN。在
背后的机制是什么?在
它是否与sys.float_info
有关,即sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
?在
愿意看你的意见。在
更新:
我看到它在内存空间中是垃圾,但是是什么决定了它们被解释成这些数字?或者说,python如何表示浮点数?在
更新时更新:
我知道浮点数是如何工作的,但为什么这些指数是以特定的模式?在
根据documentation,如果不使用}来创建一个新数组,而不是使用低级的
buffer
参数调用ndarray
,那么它填充的值是随机的。他们建议使用array
、zeros
或{ndarray
。在Numpy根据数组的类型为其分配所需的内存(np.浮动默认情况下)。如果没有初始化,您看到的结果是已分配内存中垃圾的转换。并非所有可能的字节组合都可以转换为浮点,因此
NaN
,即Not a Number
。在更新
当您询问浮点表示法时,请阅读wiki或IEEE 754 standard。在
默认情况下,
np.float
为64 bit:在64b操作系统上可以有[float128]:(http://en.wikipedia.org/wiki/Quadruple_precision_floating-point_format)
^{pr2}$相关问题 更多 >
编程相关推荐