Поиск корней с помощью numpy и matplot - PullRequest
0 голосов
/ 26 февраля 2020

Я хотел получить пересечения двух линий, используя numpy. Введенная мне ссылка говорит о том, как добраться до перекрестков, но я получил новую ошибку

TypeError: only integer scalar arrays can be converted to a scalar index

Исправленный код, основанный на моем наборе данных, приведен ниже:

import numpy as np
import matplotlib.pyplot as plt

with open('configuration_300.out', 'r') as f:
   lines = f.readlines()
   x_1 = [float(line.split()[0]) for line in lines]
   y_1 = [float(line.split()[1]) for line in lines]

   g = [x_1, y_1]

## size of x_1 and y_1 is 1696
x_2 = np.zeros(1696)
y_2 = np.ones(1696)

h = [x_2,y_2]

def find_roots(g,h):
   s = np.abs(np.diff(np.sign(h))).astype(float)
   return g[:-1][s] + np.diff(g)[s]/(np.abs(h[1:][s]/g[:-1][s])+1)

z = find_roots(g,h)

import matplotlib.pyplot as plt

plt.plot(g,h)
plt.plot((z, np.zeros(len(z))), marker="o", ls="", ms=4)

plt.show()

После запуска I получил ошибку, которая была упомянута выше

Все советы будут оценены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...