Python NumPyで度数法の角度配列の余弦(コサイン)を求める方法
度数法(°)で指定された角度の配列に対する三角関数の余弦(コサイン)を求めるには、Python NumPyの numpy.cos() メソッドを使用します。このメソッドは、第1引数 x の各要素に対する余弦を返します。第1引数 x はラジアン単位の角度です(2π が 360 度に相当)。ここでは角度の配列を渡します。第2・第3引数は省略可能です。
第2引数は ndarray で、計算結果を格納する場所を指定します。指定する場合は、入力がブロードキャストされる形状と一致している必要があります。省略または None の場合は、新しく確保された配列が返されます。タプルを指定する場合、その長さは出力の数と一致していなければなりません。
第3引数は条件(condition)で、入力全体にブロードキャストされます。条件が True の位置では out 配列に ufunc の結果が設定され、それ以外の位置では out 配列は元の値を保持します。なお、デフォルトの out=None で未初期化の out 配列を作成した場合、条件が False の位置は未初期化のまま残る点に注意してください。
手順
まず、必要なライブラリをインポートします。
import numpy as np
次に、cos 0、cos 30、cos 45、cos 60、cos 90、cos 180 を求めるための角度の配列を作成します。
arr = np.array((0., 30., 45., 60., 90., 180.))
配列を表示します。
print("Array...\n",arr)配列のデータ型を確認します。
print("\nArray datatype...\n",arr.dtype)配列の次元を取得します。
print("\nArray Dimensions...\n",arr.ndim)配列の要素数を取得します。
print("\nNumber of elements in the Array...\n",arr.size)度数法で指定された角度の配列の余弦を求めるには、NumPyの cos() メソッドを使用します。numpy.cos() はラジアン単位の角度を受け取るため、「角度 × π ÷ 180」で度からラジアンへ変換してから渡すのがポイントです。
print("\nResult...",np.cos(arr * np.pi / 180. ))完全なコード例
import numpy as np
# 度数法で指定された角度の配列の三角関数の余弦を求めるには、
# Python NumPyの numpy.cos() メソッドを使用します
# このメソッドは、第1引数 x の各要素に対する余弦を返します
print("The Trigonometric cosine of an array of angles...")
# 角度の配列
# cos 0、cos 30、cos 45、cos 60、cos 90、cos 180 を求める
arr = np.array((0., 30., 45., 60., 90., 180.))
# 配列を表示
print("Array...\n", arr)
# 配列の型を取得
print("\nOur Array type...\n", arr.dtype)
# 配列の次元を取得
print("\nOur Array Dimensions...\n",arr.ndim)
# 配列の要素数を取得
print("\nNumber of elements...\n", arr.size)
# 度数法で指定された角度の配列の余弦を求めるには、
# NumPyの cos() メソッドにラジアン変換した値を渡す
print("\nResult...",np.cos(arr * np.pi / 180. ))実行結果
The Trigonometric cosine of an array of angles... Array... [ 0. 30. 45. 60. 90. 180.] Our Array type... float64 Our Array Dimensions... 1 Number of elements... 6 Result... [ 1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17 -1.00000000e+00]
結果のポイント
出力を見ると、cos 0° は 1.0、cos 30° は約 0.866、cos 45° は約 0.707、cos 60° は 0.5、cos 180° は -1.0 となっており、数学的に正しい値が得られています。
cos 90° の結果が「6.12323400e-17」と表示されていますが、これは厳密な 0 ではなく、浮動小数点演算における丸め誤差によるごく微小な値です。π を正確に表現できないことに起因するものであり、実用上は 0 として扱えます。必要に応じて np.round() などで丸めると見やすくなります。
-
Pythonで指定された3つの角度から正の面積を持つ三角形が作成できるか判定する方法
プログラミングの練習問題としてよく登場するのが、「与えられた3つの角度を使って、正の面積を持つ三角形を作成できるかどうかを判定する」という課題です。本記事では、Pythonを使ってこの問題を解く方法を、条件と実装例を交えながらわかりやすく解説します。 三角形が成立するための条件 3つの角度から三角形が成立するためには、以下の条件を満たす必要があります。 3つの角度がすべて0より大きい(0ではない) 3つの角度の合計がちょうど180度である 任意の2つの角度の和が、残りの1つの角度以上である 例えば、入力が a = 40、b = 120、c = 20 の場合、40 + 120 + 20 =
-
Pythonで配列内のnCr値が最大となるペアを検索する方法
問題概要 n個の整数を含む配列arrが与えられたとき、配列からarr[i]とarr[j]を選び、二項係数arr[i]Carr[j](組み合わせの数)が最大になるようなペアを見つける必要があります。条件を満たすペアが複数存在する場合は、そのうちのどれか1つを返せば構いません。 例えば、入力が[4, 1, 2]の場合、出力は「4 2」になります。これは、4C1 = 4、4C2 = 6、2C1 = 2と計算でき、(4, 2)のペアが最大値6を与える唯一の組み合わせだからです。 解法の考え方 この問題を効率的に解くには、二項係数の重要な性質を利用します。nCrは、rがn/2に最も近いときに最大値を取る