二维数组中怎么让peak_params计算出来的值对应的是原始参数而不是索引参数
时间: 2024-02-29 08:51:18 浏览: 20
在二维数组中,peak_params计算出来的值对应的是行和列的索引参数,如果想让它对应原始参数,需要将行和列的索引参数分别乘以x轴和y轴的步长,并加上对应轴的最小值。代码如下:
```python
import numpy as np
from scipy.signal import find_peaks
# 构造二维数组
x = np.array([[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25]])
# 使用find_peaks函数查找峰值
peak_indexes = np.array(find_peaks(x, axis=None)[0])
peak_rows, peak_cols = np.unravel_index(peak_indexes, x.shape)
# 将峰值的索引转换成原始参数
step_x, step_y = 1, 1 # x轴和y轴的步长都为1
min_x, min_y = 1, 1 # x轴和y轴的最小值都为1
peak_params_x = peak_cols * step_x + min_x
peak_params_y = peak_rows * step_y + min_y
print(peak_params_x) # 输出[5]
print(peak_params_y) # 输出[5]
```
这样,`peak_params_x`和`peak_params_y`就分别对应原始的x轴和y轴参数了。需要注意的是,这个方法只适用于二维数组,如果是三维或更高维的数组,需要考虑其他维度的步长和最小值。