我对python很新,并且想要使用dask,但我一直在使用RuntimeWarning并且不知道为什么。一些见解会很好。
代码:
x2 = da.random.uniform(0.01,0.1,size=1e6,chunks= 1e5)
%time asd2 = da.arccos(x2)
这经常给我:
C:\ ProgramsPhD \ Anaconda \ lib \ site-packages \ dask \ array \ core.py:457:RuntimeWarning:在arccos中遇到无效值 o = func(* args,** kwargs)
答案 0 :(得分:2)
此警告无害。 Dask.array必须确定输出数组的dtype,但是因为它是惰性的,所以它还无法访问任何数据。要解决这个问题,它会在一小部分数据上调用np.arccos
。有时这一小部分数据为零,这会引发NumPy警告。
这很烦人,应该修复,但它不会影响你的实际计算。
In [1]: import dask.array as da
In [2]: x2 = da.random.uniform(0.01,0.1,size=1e6,chunks= 1e5)
...: %time asd2 = da.arccos(x2)
...:
/home/mrocklin/workspace/dask/dask/array/core.py:476: RuntimeWarning: invalid value encountered in arccos
o = func(*args, **kwargs)
CPU times: user 5.61 ms, sys: 108 µs, total: 5.72 ms
Wall time: 9.66 ms
In [3]: asd2
Out[3]: dask.array<arccos, shape=(1000000,), dtype=float64, chunksize=(100000,)>
In [4]: asd2.compute()
Out[4]:
array([ 1.48500108, 1.55036626, 1.50620869, ..., 1.52765354,
1.5051477 , 1.49203593])