问题描述
我正在处理一个基于特定值创建垃圾箱的项目。我会有 2 个值列表 x
,y
。例如:[100,102,104,106]
和 [2600,18000,12000,4000]
例如,如果我选择 bin 大小为 1,我将创建一个值为 [100,101,103,105,106]
的 binlist。对于每个垃圾箱,我想找到 x
的值是否落在它们之间并附加相应的 y
值。如果 x
值不在此范围内,我想分配一个值 0。这两个列表会这样。 x = [100,106]
和 y = [2600,1200,4000]
。
目前我使用当前代码使用 for 循环来检查所有这些 x
值的所有 bin,如下所示:
spectrumcounter = 0
binintensitylist = [[] for x in range(len(intensitylist))]
for i in range(len(intensitylist)):
for bin1 in bins:
intensity_tmp = 0
for mz,intensity in zip(mzlist[spectrumcounter],intensitylist[spectrumcounter]):
if bin1 < mz < bin1 + binwidth:
intensity_tmp += intensity
binintensitylist[i].append(intensity_tmp)
spectrumcounter += 1
此处的 x
值为 mz
,强度为 y
值。考虑到我目前使用的 bin 大小为 0,01,并且 mz
的范围从 100 到有时 1600,因此 bin 的数量可能非常大,这使得使用 for 循环的代码非常缓慢。我一直在尝试找到一种 Pandas 方法来解决这个问题,但我对编码很陌生,并且自己无法解决这个问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)