PythonのNumPyで複素数の偏角(角度)を度単位で取得する方法
Pythonで複素数の偏角(argument)を返すには、NumPyのnumpy.angle()メソッドを使用します。このメソッドは、複素平面上の正の実軸から反時計回りに測った角度を範囲 (-π, π] で返し、戻り値のデータ型は numpy.float64 です。
numpy.angle() の主なパラメータ
- 第1引数(z): 複素数、または複素数を要素とする配列(シーケンス)
- 第2引数(deg): True の場合は角度を度(°)で返し、False(デフォルト)の場合はラジアンで返します
それでは、実際にコードを使って手順を確認していきましょう。
手順1: 必要なライブラリをインポートする
まず、必要なライブラリをインポートします。
import numpy as np
手順2: array() メソッドで配列を作成する
次に、array() メソッドを使って複素数を含む配列を作成します。
arr = np.array([1.0, 1.0j, 1+1j])
手順3: 配列の情報を表示する
作成した配列を表示してみましょう。
print("Array...\n", arr)続いて、配列のデータ型を確認します。
print("\nOur Array type...\n", arr.dtype)配列の次元数を取得します。
print("\nOur Array Dimension...\n", arr.ndim)さらに、配列の形状(shape)も確認しておきましょう。
print("\nOur Array Shape...\n", arr.shape)手順4: numpy.angle() で偏角を度単位で取得する
numpy.angle() メソッドを使って複素数の偏角を求めます。このメソッドは、複素平面上の正の実軸から反時計回りの角度を範囲 (-π, π] で返し、データ型は numpy.float64 になります。ここでは deg = True を指定しているため、結果は度単位で出力されます。
print("\nResult...\n", np.angle(arr, deg = True))完全なサンプルコード
import numpy as np
# array() メソッドで配列を作成
arr = np.array([1.0, 1.0j, 1+1j])
# 配列を表示
print("Array...\n", arr)
# 配列のデータ型を表示
print("\nOur Array type...\n", arr.dtype)
# 配列の次元数を表示
print("\nOur Array Dimension...\n", arr.ndim)
# 配列の形状を表示
print("\nOur Array Shape...\n", arr.shape)
# numpy.angle() メソッドで複素数の偏角を取得
# 正の実軸から反時計回りの角度を範囲 (-pi, pi] で返し、dtype は numpy.float64
print("\nResult...\n", np.angle(arr, deg = True))実行結果
Array... [1.+0.j 0.+1.j 1.+1.j] Our Array type... complex128 Our Array Dimension... 1 Our Array Shape... (3,) Result... [ 0. 90. 45.]
結果の解説
出力結果を見ると、各要素の偏角が度単位で返されていることがわかります。
1.0(実数)→ 0°: 正の実軸上にあるため角度は0度1.0j(純虚数)→ 90°: 正の虚軸上にあるため90度1+1j→ 45°: 実部と虚部が等しい複素数なので45度
このように、numpy.angle() を使えば、複素数や複素数配列の偏角を簡単に計算できます。信号処理やフーリエ解析など、複素数を扱う場面で非常に便利な関数ですので、ぜひ活用してください。
-
Python・Pandasでインデックスのデータを表す配列を取得する方法(index.values)
PandasのIndexオブジェクトに格納されているデータをNumPy配列として取得したい場合は、index.valuesプロパティを使用します。このプロパティは、インデックスの各要素を含む配列を返してくれるため、データの抽出や他の処理への受け渡しが簡単に行えます。 index.valuesプロパティの基本的な使い方 まず、必要なライブラリをインポートします。 import pandas as pd 次に、Indexオブジェクトを作成します。ここでは、交通手段の名前を要素とするインデックスを作成してみましょう。 index = pd.Index([Car,Bike,Truck,Ship,Air
-
Pythonでサブ配列を1回反転するだけで配列がソートされるかどうかを判定する方法
すべての要素がユニーク(重複なし)である配列 nums があるとします。この配列の部分配列(サブ配列)を1つだけ反転したとき、配列全体がソートされた状態になるかどうかを判定するのが本記事のテーマです。なお、配列がすでにソート済みの場合も True を返します。 たとえば、入力が nums = [4,6,27,25,15,9,37,42] の場合を考えてみましょう。[27,25,15,9] の部分を反転すると [4,6,9,15,25,27,37,42] となり、配列全体が昇順に整列します。したがって、この場合の出力は True になります。 アルゴリズムのアプローチ この問題は、配列を一