【发布时间】:2020-12-17 09:42:24
【问题描述】:
我正在尝试使用BaselineRemoval 包从一些拉曼光谱中去除背景荧光。在代码文档中,它将输入的首选格式声明为input_array: A pandas dataframe column provided in input as dataframe['input_df_column']. It can also be a Python list object
我的例子-
df = pd.DataFrame(
{'Patient': [1, 2, 3, 4, 5, 6],
'Group': [1, 1, 1, 2, 2, 2],
'Samples': [list(np.random.randn(3).round(2)) for i in range(6)]
}
)
input_array = df['Samples']
polynomial_degree = 2
baseObj = BaselineRemoval(input_array)
Modpoly_output = baseObj.ModPoly(polynomial_degree)
但是,这会产生错误ValueError: setting an array element with a sequence.
不知道如何继续。
【问题讨论】:
-
我检查了
Samples列的第一行的值。它看起来像一个列表对象[-0.89, 0.09, 1.23]。可以为一组值计算拉曼光谱。例如Temperature或Pressure或Wavelength。 但是分开。而这个 pandas 列的内容是 [温度、压力、波长]。可以对数组对象进行基线移除,而不是多维矩阵。相反,如果您将这些值存储在单独的数组中并分别处理每个数组,那么它将为您提供所需的基线移除光谱。 -
检查并修复数组的维度,拆分为多个数组,分别处理。
-
嗯。上面的数据框只是一个从表面上看的虚拟示例。它们都是由不输出多维矩阵的拉曼尺度的探针记录的幅度。所以该列是 [amplitue_at_wavenumber1,amplitue_at_wavenumber2,amplitue_at_wavenumber3]。在我的原始数据集中,每个患者的样本列中有超过 2000 个荧光幅度。不确定将它们存储为单独的值会有什么帮助。
-
我看到您面临的问题是关于如何整理数据。如果它采用数组形式,该库可以帮助您进行基线移除。在这种情况下,一个简单的 for 循环应该为您完成这项工作,正如您正确识别的那样。祝您项目一切顺利。
标签: python arrays signal-processing noise-reduction baselineremoval