是否可以使用
np.gradient
计算给定数组中每10个值的梯度?
rand = np.random.randint(low=1, high=10, size=(100,))
注意:我想计算两次梯度。一次在每个值之间,一次在每 10 个值之间。然后我想绘制两者。这 10 个值应该出现在每第十个位置上。这就是为什么我一开始似乎无法提取值的原因。
首先计算每个值之间的梯度
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()