计算并绘制数组中每个第 N 个值的梯度

问题描述 投票:0回答:1

是否可以使用

 np.gradient
计算给定数组中每10个值的梯度?

rand = np.random.randint(low=1, high=10, size=(100,))

注意:我想计算两次梯度。一次在每个值之间,一次在每 10 个值之间。然后我想绘制两者。这 10 个值应该出现在每第十个位置上。这就是为什么我一开始似乎无法提取值的原因。

python numpy plot gradient
1个回答
1
投票

首先计算每个值之间的梯度

import numpy as np
import matplotlib.pyplot as plt

rand = np.random.randint(low=1, high=10, size=(100,))
gradient_full = np.gradient(rand)

计算每 10 个值之间的梯度

rand_10th = rand[::10]
gradient_10th = np.gradient(rand_10th)

创建情节

x_full = np.arange(100)
x_10th = np.arange(0, 100, 10)

剧情

plt.figure(figsize=(12, 6))

plt.plot(x_full, gradient_full, label='Gradient (every value)', alpha=0.7)
plt.plot(x_10th, gradient_10th, 'ro-', label='Gradient (every 10th value)', markersize=8)

plt.xlabel('Index')
plt.ylabel('Gradient')
plt.title('Comparison of Gradients')
plt.legend()
plt.grid(True)

plt.show()

输出 enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.