numpy может обрабатывать матрицу или 2D numpy массив
import numpy as np
points = np.array([(10, 43), (10, 44), (10, 45), (10, 46), (10, 47), (10, 48),
(10, 49), (10, 50), (10, 51), (10, 52), (10, 53), (10, 54), (10, 55), (10,
56), (11, 39), (11, 40), (11, 41), (11, 42), (11, 57), (11, 58), (11, 59),
(11, 60), (12, 36), (12, 37), (12, 38), (12, 61), (12, 62),(12, 63), (13, 33),
(13, 34), (13, 35), (13, 64), (13, 65), (13, 66), (14, 31), (14, 32), (14,
33), (14, 66), (14, 67), (14, 68), (15, 30), (15, 31), (15, 68), (15, 69),
(16, 28), (16, 29), (16, 70), (16, 71), (17, 27), (17, 72), (18, 25), (18,
26), (18, 73), (18, 74), (19, 24)])
#passing the points[:,0] as x, points[:,1] as y, (a,b) as center
def cart_to_pol(points, a = 0, b = 0):
rho = np.sqrt((points[:,0]-a)**2 + (points[:,1]-b)**2)
phi = np.arctan2((points[:,1]-a), (points[:,0]-b))
return rho, phi
#for center at (0,0)
cart_to_pol(points)
#for center at (1,1)
cart_to_pol(points,1,1)
Надеюсь, что это решит ваши 1 и 2 вопросы. на последний вопрос ..
func = lambda x : x if x>0 else (2*np.pi + phi)
phi = func(phi)
print(phi)
Скажите, пожалуйста, поможет ли это.