首页 > 解决方案 > Python:将复杂数组转换为极坐标形式

问题描述

我有一个形状为 (300,300) 的 np.array,其复数值为 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的初学者,所以欢迎任何帮助!

标签: pythonarraysimplementationcomplex-numbers

解决方案


您可以直接在 numpy 中获取 R 和 O:

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

推荐阅读