要识别浮点数组中的峰值和谷值,可以按照以下步骤进行:
-
遍历浮点数组,从索引1开始到倒数第二个元素,因为第一个元素和最后一个元素无法与其周围的元素进行比较。
-
对于每个元素,比较其与其前一个元素和后一个元素的大小关系。
-
如果当前元素大于其前一个元素和后一个元素,则它是一个峰值。
-
如果当前元素小于其前一个元素和后一个元素,则它是一个谷值。
以下是一个示例代码:
def find_peak_valley(arr):
peaks = [] # 存储峰值的索引
valleys = [] # 存储谷值的索引
for i in range(1, len(arr)-1):
if arr[i] > arr[i-1] and arr[i] > arr[i+1]:
peaks.append(i)
elif arr[i] < arr[i-1] and arr[i] < arr[i+1]:
valleys.append(i)
return peaks, valleys
# 测试
array = [1.2, 0.9, 1.5, 0.7, 2.0, 1.0, 0.5]
peaks, valleys = find_peak_valley(array)
print("峰值索引:", peaks) # 输出:峰值索引: [2, 4]
print("谷值索引:", valleys) # 输出:谷值索引: [1, 3, 6]
在上述示例中,输入的浮点数组是 [1.2, 0.9, 1.5, 0.7, 2.0, 1.0, 0.5]
,输出结果是峰值索引为 [2, 4]
,谷值索引为 [1, 3, 6]
。