gpt4 book ai didi

python - Python中两个图的交集,找到x值

转载 作者:IT老高 更新时间:2023-10-28 20:29:46 26 4
gpt4 key购买 nike

让 0 <= x <= 1。我有两列 fg 分别长度为 5000。现在我绘制:

plt.plot(x, f, '-')
plt.plot(x, g, '*')

我想找到曲线相交的点“x”。我不想找到 f 和 g 的交集。我可以简单地做到这一点:

set(f) & set(g)

最佳答案

您可以将 np.signnp.diffnp.argwhere 结合使用来获取线交叉点的索引(在这种情况下,点是 [ 0, 149, 331, 448, 664, 743]):

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 1000)
f = np.arange(0, 1000)
g = np.sin(np.arange(0, 10, 0.01) * 2) * 1000

plt.plot(x, f, '-')
plt.plot(x, g, '-')

idx = np.argwhere(np.diff(np.sign(f - g))).flatten()
plt.plot(x[idx], f[idx], 'ro')
plt.show()

plot of intersection points

首先它使用 np.sign 计算 f - g 和相应的符号。应用 np.diff 会显示符号变化的所有位置(例如线条交叉)。使用 np.argwhere 为我们提供了准确的索引。

关于python - Python中两个图的交集,找到x值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com