У меня есть набор данных, который содержит массив точек с координатами X, Y. Я хотел бы преобразовать набор данных в другой, содержащий следующее:
- Радиус: от точки до центра круга. Круг с координатами (0,0)
- Угол: Вычислить угол точки относительно вектора (1,0)
Я пытался применить полярные преобразования, но яЯ пытаюсь получить результаты при кодировании. Пожалуйста, посмотрите ниже набор данных и что он содержит:
Набор данных
data_circles = ('circles', *datasets.make_circles(n_samples=1000, factor=.5, noise=.05))
При доступе к массиву точек мы можем увидеть следующий
data_circles[1]
Списокpoints
array([[-0.1824838 , -0.90538815],
[-0.50596281, -0.29994453],
[-0.40857322, -0.29386417],
...,
[ 0.98727003, -0.4073737 ],
[-0.74624763, -0.653247 ],
[ 0.31444572, 0.3814041 ]])
Мне удалось вычислить радиус и угол, но я изо всех сил пытаюсь применить его для всего набора данных. Пожалуйста, смотрите ниже:
import math
v = np.array(data_circles[1])
x = v[0][0]
y = v[0][1]
#Radius
r = math.sqrt(x ** 2 + y ** 2)
#Angle
phi = np.arctan(y/x)