ato*_*3ls 16 python numpy complex-numbers
是否有内置的Numpy函数将极坐标形式的复数,幅度和角度(度)转换为实部和虚部中的一个?
显然,我可以编写自己的,但似乎某种模块中包含优化版本的东西类型?
更具体地说,我有一系列的数量和一系列角度:
>>> a
array([1, 1, 1, 1, 1])
>>> b
array([120, 121, 120, 120, 121])
Run Code Online (Sandbox Code Playgroud)
我想要的是:
>>> c
[(-0.5+0.8660254038j),(-0.515038074+0.8571673007j),(-0.5+0.8660254038j),(-0.5+0.8660254038j),(-0.515038074+0.8571673007j)]
Run Code Online (Sandbox Code Playgroud)
tom*_*m10 13
没有一个功能可以完全按照你想要的那样做,但是有角度,这是最难的部分.因此,例如,可以定义两个函数:
def P2R(radii, angles):
return radii * exp(1j*angles)
def R2P(x):
return abs(x), angle(x)
Run Code Online (Sandbox Code Playgroud)
这些函数使用弧度进行输入和输出,对于度数,需要在两个函数中转换为弧度.
在numpy 引用中有一个关于处理复数的部分,这就是你要查找的函数所在的位置(因为它们不在那里,我认为它们不存在于numpy中).
小智 5
之前的答案中有一个错误,即使用numpy.vectorize
- cmath.rect 不是可以导入的模块。Numpy 还提供了 deg2rad 函数,该函数为角度转换提供了一段更清晰的代码。该代码的另一个版本可能是:
import numpy as np
from cmath import rect
nprect = np.vectorize(rect)
c = nprect(a, np.deg2rad(b))
Run Code Online (Sandbox Code Playgroud)
该代码使用 numpy 的向量化函数返回标准库函数的 numpy 样式版本,cmath.rect
该函数可以跨 numpy 数组按元素应用。
归档时间: |
|
查看次数: |
26284 次 |
最近记录: |