为何Spyder与Visual Studio中IModPoly基线校正结果不一致?
关于BaselineRemoval库IModPoly函数在Spyder与Visual Studio中结果不一致的问题
我使用BaselineRemoval库的IModPoly函数进行基线校正,代码和数据集完全相同,但在Spyder和Visual Studio中得到的结果却不一致。朋友运行代码后得到的结果与我在Visual Studio中得到的一致。
简化代码
from BaselineRemoval import BaselineRemoval polynomial_degree = 3 #only needed for IModPoly algorithm input_array_train = data.copy() print(input_array_train.shape) print(input_array_train) baseline_correction_train=BaselineRemoval(input_array_train).IModPoly(polynomial_degree) train_raman_proc = baseline_correction_train print(train_raman_proc.shape) train_raman_proc
两个平台的输出
Spyder输出
(2042,) [336167.00616779 335865.93248741 335585.7852715 ... 133592.04534896 133576.80460859 133517.41650705] (2042,) array([40893.84981077, 40650.58294278, 40428.28300527, ..., 39654.3524087 , 39840.20855015, 39982.01744302])
Visual Studio输出
(2042,) [336167.00616779 335865.93248741 335585.7852715 ... 133592.04534896 133576.80460859 133517.41650705] (2042,) array([32338.54977607, 32129.43948405, 31941.23853284, ..., 39768.88844912, 39896.21948952, 39979.46997397])
可以看到输入数据数组完全相同,但基线校正后的输出数组存在差异。
经测试发现,这似乎与数组大小有关:若截取数组的[0:1200]或[1201:2042]分段,两个平台的结果一致;但运行整个数组(或更大的分段如[0:1300])时,结果就会不同。
从输出图可见,Spyder的IModPoly结果在1300附近似乎出现了“重启”的情况。
请问这一差异的原因是什么?
内容的提问来源于stack exchange,提问作者nick
相关产品推荐
相关产品推荐

