我遇到一个np.array
的问题,该问题未返回正确的inv_box_cox
。见下文:
list0 = np.full(4442,0)
list12000 = np.full(13,12000)
list10000000 = np.full(1,10000000)
list300000 = np.full(1,300000)
list200000 = np.full(1,200000)
list100000 = np.full(1,100000)
asm = np.concatenate([list12000, list10000000, list300000, list200000, list100000, list0])
asm
>>> array([12000, 12000, 12000, ..., 0, 0, 0])
这是我所期望的。问题是当我想应用stats.boxcox
处理并撤消该处理时,我没有得到正确的结果。
from scipy.special import inv_boxcox
from scipy import stats
x, lmbda = stats.boxcox(asm+1, lmbda=None)
inv_boxcox(x, lmbda)-1
>>>array([inf, inf, inf, ..., 0., 0., 0.])
np.inf
的原因是什么?
当我手动设置lambda值时,一切正常。
有人有解释/解决方案吗?