我可能在scipy或numpy中遇到了一个bug,有人看到过下面的问题或者有一个很好的解决方法吗?你知道吗
from scipy.stats import distributions
import numpy as np
distributions.norm.ppf(np.ones((30000, 10000)) / 2.0)
结果
array([[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 0., 0., 0.],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]])
较小的运行(如20000行)工作良好。你知道吗
使用numpy 1.10.4。你知道吗
编辑
问题似乎更深,出现在numpy内部:
na = np.zeros((30000, 10000)) * np.nan
np.place(na, np.ones((30000, 10000)), np.ravel(np.ones((30000, 10000))))
导致
array([[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.],
[ 1., 1., 1., ..., 1., 1., 1.],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]])
问题似乎是在} 函数中发生整数溢出。我已经打开了一个pull request来解决这个问题。你知道吗
numpy/core/src/multiarray/compiled_base.c
中的^{相关问题 更多 >
编程相关推荐