PythonのNumPyを利用して偏角を求める方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonのNumPyを利用して偏角を求める方法について現役エンジニアが解説しています。NumpyはPythonにおいて、行列計算などの計算を高速に処理することのできるライブラリで、複素数なども扱うことができます。偏角とは複素数平面におけるベクトルのなす角のことです。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

PythonのNumPyを利用して偏角を求める方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonのNumPyを利用して偏角を求める方法について詳しく説明していくね!

大石ゆかり

お願いします!

この記事では、Pythonを使って複素数値を扱う際に、複素数の「偏角」を求める方法について解説します。

偏角とは

まずは、「偏角」とは何か、についてかんたんに説明します。複素数というのは、通常の実数に加えて、二乗して-1になる数も考えた数のことを言います。

例えば、

i, 5 + 2i, 10, -3 - 6i

などの数のことです。複素数は、「複素数平面」という形で表すことができて、実数部分がx座標、虚数部分がy座標という形で表すことができます。

このときに、x軸(実軸)と複素数を表す点に向かうベクトルのなす角を「偏角」と言います。

Numpyで求めることが出来る偏角について。実数部分(実数軸)をx座標として、虚数部分をy座標にし、x軸と複素数を表す点に向かうベクトルのなす角のこと。

NumPyとは

続いて、NumPyについて説明します。NumpyはPythonにおいて、行列計算などの計算を高速に処理することのできるライブラリで、複素数なども扱うことができます。

[PR] Pythonで挫折しない学習方法を動画で公開中

NumPyを利用して偏角を求める方法

Numpyを使って偏角を求めたい場合には、angle関数というものを使います。angle関数の使い方は、

NumPy.angle(複素数値)

と記述して、戻り値は渡した複素数の偏角がラジアンで返ってきます。例えば、2 + 2jという数の偏角を知りたい場合には、

ang = np.angle(2+2j)

とすれば良いでしょう。Pythonで複素数を扱うには、iではなくjを用いることに注意してください。

実際に書いてみよう

それでは、実際にコードを書いて、実行して見ましょう。サンプルコードとしては、複素数を用意して、その偏角を取得し、両方を表示するものです。

>>> import numpy as np
>>> num = 2 +2j
>>> ang = np.angle(num)
>>> print(num, ang)

実行すると、

(2+2j) 0.7853981633974483

という値が出力されて、複素数の偏角を取得することができました。ラジアン単位なので、度数にして表示したい場合には、mathモジュールのdegrees関数を使って

>>> import math
>>> print(math.degrees(ang))

とします。この場合、

45.o

と出力されるので、偏角が45度であることが確認できます。

 

まとめ

この記事では、Pythonで複素数の偏角を求める方法について解説しました。複素数を扱うプログラムを作成する際に参考にしてみてください。

監修してくれたメンター

小倉翔悟(おぐらしょうご)

AIプログラミングを使って開発を行う大学3年生。

プログラミング歴は約3年でPythonは割と得意。好きな物理理論は一般相対性理論で動物も好き。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。