【发布时间】:2021-01-08 18:34:36
【问题描述】:
所以我需要分析存储在 excelsheet 中的信号(在我的情况下是来自表皮细胞的钙信号)的峰数和宽度。每列包含一个单元格的所有值(600 个值)
为了分析峰值,我将使用 scipy.signal.find_peaks() 和 scipy.signal.peak_widths() 函数进行分析,我将各个列放入包含该列中所有 601 个值的一维 numpy 数组中。
我通过将所有单独的列(列在 Excelsheet 中命名为 A、B、C、D 等)保存到它们自己的数据框(df_A、df_B)中,然后将它们放入一个数组中来做到这一点:
import numpy as np
import pandas as pd
df = pd.read_excel('test.xlsx')
df_A = df.loc[:,'A']
df_B = df.loc[:,'B']
arrA = np.array(df_A)
arrB = np.array(df_B)
为了计算峰数和宽度,我使用了以下几行:
from scipy.signal import find_peaks, peak_widths
peaks_A, _ = find_peaks(x,height=7000, prominence= 1)
results_peakwidth_A = peak_widths(x, peaks, rel_height=0.5)
现在,由于我不仅要分析一个,而且要分析 > 100 个单元/信号,是否有一种简单的方法可以对所有单元/阵列执行此操作?这超出了我的能力范围,因此我很乐意提供任何帮助。
【问题讨论】:
标签: python arrays excel numpy scipy