26

極形式の複素数、大きさ、角度 (度) を実数成分と虚数成分に変換する組み込みの Numpy 関数はありますか?

明らかに私は自分自身を書くことができましたが、それはいくつかのモジュールに含まれている最適化されたバージョンがあるタイプのもののようですか?

より具体的には、大きさの配列と角度の配列があります。

>>> a
array([1, 1, 1, 1, 1])
>>> b
array([120, 121, 120, 120, 121])

そして、私が欲しいのは:

>>> c
[(-0.5+0.8660254038j),(-0.515038074+0.8571673007j),(-0.5+0.8660254038j),(-0.5+0.8660254038j),(-0.515038074+0.8571673007j)]
4

5 に答える 5

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))

cmath.rectこのコードは、numpy の vectorize 関数を使用して、 numpy 配列全体に要素ごとに適用できる標準ライブラリの関数の numpy スタイル バージョンを返します。

于 2015-01-05T21:34:49.947 に答える
1

私はitertoolsでcmathを使用しました:

from cmath import rect,pi
from itertools import imap
b = b*pi/180                   # convert from deg to rad
c = [x for x in imap(rect,a,b)]
于 2013-05-08T16:11:04.870 に答える