有没有一种更短的方法可以创建此列表?

2024-09-28 05:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在尝试确定某个结果的峰值时得到的元组:

In:  peaks, _ = find_peaks(probsuc,width=4)
     peak_prominences(probsuc, peaks, wlen=7)
Out: (array([0.015625  , 0.24166667]), array([ 9, 36]), array([14, 42]))

我只想获得两个列表:[9,14][36,42]。我所做的是

In:  [peak_prominences(probsuc, peaks, wlen=7)[1][0],peak_prominences(probsuc, peaks, wlen=7)[2][0]]
Out: [9, 14]

有没有一个更短的方法可以获得相同的结果?谢谢


Tags: 方法in列表findoutwidtharray元组
1条回答
网友
1楼 · 发布于 2024-09-28 05:18:13

您确实应该避免调用peak_prominences两次

例如:

[arr[0] for arr in peak_prominences(probsuc, peaks, wlen=7)[1:]]

或:

next(zip(*peak_prominences(probsuc, peaks, wlen=7)[1:]))

后者是元组而不是列表。如果您需要一个列表,那么对其应用list()

相关问题 更多 >

    热门问题