Python: преобразование сложного массива в полярную форму

#python #arrays #implementation #complex-numbers

#python #массивы #реализация #комплексные числа

Вопрос:

У меня есть np.array с формой (300,300) с комплексными значениями a bj. Я хотел бы преобразовать каждый элемент в полярную форму R exp{j O}

Я уже пробовал

 cmath.polar(data)
 

Но это не работает для массива, поэтому я попробую что-то вроде этого

 complexe = np.zeros((len(data),len(data[0])))
count_arr = 0
for arr in data:
    count_item = 0
    for itm in arr:
        complexe[count_arr][count_item] = cmath.polar(itm)
        count_item = count_item  1
    count_arr = count_arr  1
 

Это не работает, потому что вывод cmath.polar — это кортеж (я думаю).

Я новичок в python, поэтому любая помощь будет приветствоваться!

Комментарии:

1. Во-первых, знайте, что вы можете заставить счетчики работать автоматически, используя for count_arr, arr in enumerate(data) и for count_item, itm in enumerate(arr) .

Ответ №1:

вы можете получить свои R и O непосредственно в numpy:

 R = np.abs(z), O = np.angle(z)