Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python・NumPyのtan()メソッドで角度の正接(タンジェント)を求める方法


numpy.tan()メソッドとは

三角関数における正接(タンジェント)は、要素ごとの np.sin(x)/np.cos(x) の計算結果と等価です。角度の三角関数タンジェントを求めるには、PythonのNumPyライブラリが提供する numpy.tan() メソッドを使用します。このメソッドは、第1引数 x の各要素に対する正接を返し、x がスカラーであれば結果もスカラーとして返されます。

パラメータの詳細

x(第1引数): 角度を指定します。単位はラジアンで、2πが360度に相当します。

out(第2引数・省略可): 計算結果を格納するndarrayを指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略またはNoneの場合は、新しく確保された配列が返されます。タプルで指定する際は、その長さが出力の数と一致していなければなりません。

where(第3引数・省略可): 入力全体にブロードキャストされる条件です。条件がTrueとなる位置にはufuncの計算結果が書き込まれ、それ以外の位置ではout配列は元の値を保持します。ただし、デフォルトの out=None によって未初期化の配列が作成された場合、条件がFalseの位置は未初期化のまま残る点に注意してください。

実行手順

最初に、必要なライブラリをインポートします。

import numpy as np

続いて、各角度のタンジェントを順番に求めていきます。

90度のタンジェントを求めます。

print("\nResult...",np.tan(np.pi/2.))

60度のタンジェントを求めます。

print("\nResult...",np.tan(np.pi/3.))

45度のタンジェントを求めます。

print("\nResult...",np.tan(np.pi/4.))

30度のタンジェントを求めます。

print("\nResult...",np.tan(np.pi/6.))

0度のタンジェントを求めます。

print("\nResult...",np.tan(0))

180度のタンジェントを求めます。

print("\nResult...",np.tan(np.pi))

-180度のタンジェントを求めます。

print("\nResult...",np.tan(-np.pi))

サンプルコード

import numpy as np

# 三角関数の正接は、要素ごとの np.sin(x)/np.cos(x) と等価。
# 角度の三角関数タンジェントを求めるには numpy.tan() メソッドを使用する
print("Get the Trigonometric tangent...")

# 90度のタンジェント
print("\nResult...",np.tan(np.pi/2.))

# 60度のタンジェント
print("\nResult...",np.tan(np.pi/3.))

# 45度のタンジェント
print("\nResult...",np.tan(np.pi/4.))

# 30度のタンジェント
print("\nResult...",np.tan(np.pi/6.))

# 0度のタンジェント
print("\nResult...",np.tan(0))

# 180度のタンジェント
print("\nResult...",np.tan(np.pi))

# -180度のタンジェント
print("\nResult...",np.tan(-np.pi))

実行結果

Get the Trigonometric tangent...

Result... 1.633123935319537e+16

Result... 1.7320508075688767

Result... 0.9999999999999999

Result... 0.5773502691896257

Result... 0.0

Result... -1.2246467991473532e-16

Result... 1.2246467991473532e-16

結果の解説

実行結果を見ると、90度(π/2)のタンジェントが「1.633123935319537e+16」という非常に大きな数値になっています。数学的には90度の正接は定義されませんが、コンピュータ上では π/2 を完全に表現できないため、わずかな浮動小数点誤差が生じ、このような巨大な値が出力されるのです。同様に、180度(π)の結果が「-1.2246467991473532e-16」とほぼ0に近い値になるのも、同じ理由によるものです。

一方、60度は約1.732(√3)、45度は約1.0、30度は約0.577(1/√3)、0度は0.0と、数学的に期待される値が正しく得られていることが確認できます。

  1. Python Pandas - MultiIndexでレベルの名前を取得する方法

    MultiIndexの各レベルの名前を取得するには、PandasのMultiIndex.namesプロパティを使用します。まず、必要なライブラリをインポートしましょう。import pandas as pdMultiIndexとは、pandasオブジェクトで使用できる多階層(階層的)なインデックスオブジェクトのことです。まずは配列を作成します。arrays = [[1, 2, 3, 4, 5], [John, Tim, Jacob, Chris, Keiron]]namesパラメータを指定すると、各インデックスレベルに名前を設定できます。そして、from_arrays()メソッドを使ってMul

  2. Python・pandasで列のデータ型を取得する方法|info()メソッドの使い方

    pandasのDataFrameで各列のデータ型(dtype)を確認したい場合は、info()メソッドを使用します。このメソッドを呼び出すだけで、列名・非null件数・データ型・メモリ使用量といった概要情報を一括して取得できます。 まず、必要なライブラリをインポートしましょう。 import pandas as pd 次に、文字列型と整数型という異なるデータ型を持つ2つの列からなるDataFrameを作成します。 dataFrame = pd.DataFrame( { Student: [Jack, Robin, Ted, Marc, Scarlett, Kat, Jo