在 NumPy 中定义的特殊值可以通过:nan,inf,
NaNs 可以用作简陋的占位类型(如果你并不在乎初始的值是什么的话)
注意:不能使用相等来测试 NaN。例如:
>>> myarr = np.array([1., 0., np.nan, 3.])>>> np.nonzero(myarr == np.nan)(array([], dtype=int64),)>>> np.nan == np.nan # is always False! Use special numpy functions instead.False>>> myarr[myarr == np.nan] = 0. # doesn't work>>> myarrarray([ 1., 0., NaN, 3.])>>> myarr[np.isnan(myarr)] = 0. # use this instead find>>> myarrarray([ 1., 0., 0., 3.])
其他的相关的特殊值判断函数
isinf(): True if value is infisfinite(): True if not nan or infnan_to_num(): Map nan to 0, inf to max float, -inf to min float
除了从结果中排除nans之外,以下内容对应于常用函数:
nansum()nanmax()nanmin()nanargmax()nanargmin()>>> x = np.arange(10.)>>> x[3] = np.nan>>> x.sum()nan>>> np.nansum(x)42.0
默认值为 Warn 表示无效、Divide和溢出,Ignore表示下溢。
但是这是可以更改的,并且可以针对不同种类的异常单独设置。不同的行为包括:
可以针对各种错误或特定错误设置这些行为:
注意,整数除零由相同的机器处理。这些行为是基于每个线程设置的。
。。。。。。。。。。。。。
作者:柯广
篇幅有限更多请见扩展链接:http://www.mark-to-win.com/tutorial/52206.html
留言与评论(共有 0 条评论) “” |