【Python】sqrt()で平方根(ルート)を計算する!
Pythonで平方根(ルート)を計算するにはsqrt()を使用します。
しかし、sqrt()はそのまま使用することはできず、Python標準のライブラリであるmathというライブラリか外部ライブラリであるnumpyというライブラリをインポートする必要があります。
また、sqrt()で平方根を計算する関数に対してmap()を使用することで、リストやタプルなどのイテレータの値をまとめて平方根の計算を行うことができ、mathライブラリのpow()やnumpyライブラリのcbrt()を使用すると、立方根を計算することができます。
今回はsqrt()で平方根(ルート)を計算する方法について以下の内容で解説していきます。
⚫︎ sqrt()とは
⚫︎ パラメータが正の数である場合
⚫︎ パラメータが負の数である場合
⚫︎ パラメータが0である場合
⚫︎ パラメータが無限大である場合
⚫︎ イテレータの値から平方根(ルート)で計算する方法
⚫︎ 立方根を計算する方法
目次
sqrt()とは
sqrt()とは平方根を計算する関数ですが、そのまま使用することはできません。
sqrt()を使用するためには、Python標準のライブラリであるmathというライブラリか外部ライブラリであるnumpyというライブラリをインポートする必要があります。
mathのsqrt()の書き方
mathのsqrt()の書き方は下記となります。
1 2 3 |
import math math.sqrt('数値') |
「import math」を記述することでmatnライブラリをインポートすることができ、インポート後にsqrt()を使用することができます。
numpyのsqrt()の書き方
numpyのsqrt()の書き方は下記となります。
1 2 3 |
import numpy numpy.sqrt('数値') |
「import numpy」を記述することでnumpyライブラリをインポートすることができ、インポート後にsqrt()を使用することができます。
sqrt()のパラメータ
・数値:
平方根で計算したい数値を指定する
sqrtに数値を指定することで、指定した数値の平方根の計算を行います。
また、パラメータは数値であるので整数型や小数型を指定することができます。
平方根(ルート)を計算するサンプルコード
平方根(ルート)を計算するサンプルコードを紹介します。
パラメータが正の数である場合
パラメータが正の数である場合に平方根の計算を行ってみます。
例
1 2 3 4 5 6 7 |
import math import numpy print('・mathのsqrt()で平方根を計算') print(math.sqrt(4.3)) print('・numpyのsqrt()で平方根を計算') print(numpy.sqrt(5)) |
出力結果
・mathのsqrt()で平方根を計算
2.073644135332772
・numpyのsqrt()で平方根を計算
2.23606797749979
パラメータが正の数である場合は平方根の計算を行なっています。
パラメータが負の数である場合
パラメータが負の数である場合に平方根の計算を行ってみます。
例
1 2 3 4 5 6 7 |
import math import numpy print('・mathのsqrt()で平方根を計算') print(math.sqrt(4.8)) print('・numpyのsqrt()で平方根を計算') print(numpy.sqrt(-8)) |
出力結果
ValueError: math domain error
パラメータが負の数である場合は平方根の計算を行うことができません。
「math domain error」のエラーが発生しています。
パラメータが0である場合
パラメータが0である場合に平方根の計算を行ってみます。
例
1 2 3 4 5 6 7 |
import math import numpy print('・mathのsqrt()で平方根を計算') print(math.sqrt(0)) print('・numpyのsqrt()で平方根を計算') print(numpy.sqrt(0)) |
出力結果
・mathのsqrt()で平方根を計算
0.0
・numpyのsqrt()で平方根を計算
0.0
パラメータが0である場合は平方根の計算を行われ「0」が表示されます。
パラメータが無限大である場合
パラメータが無限大である場合に平方根の計算を行ってみます。
例
1 2 3 4 5 6 7 8 |
import math import numpy print('・mathのsqrt()で平方根を計算') print(math.sqrt(float('infinity'))) print('・numpyのsqrt()で平方根を計算') print(numpy.sqrt(float('infinity'))) |
出力結果
・mathのsqrt()で平方根を計算
inf
・numpyのsqrt()で平方根を計算
inf
パラメータが無限大である場合は平方根の計算を行われ「inf」が表示されます。
イテレータの値から平方根(ルート)で計算する方法
イテレータの値から平方根(ルート)で計算するにはmap()を使用します。
map()を使用すると、リストやタプルなどのイテレータの値をまとめて平方根の計算を行うことができます。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import math import numpy sq_list = [12, 24, 5, 4, 8] sq_tuple = (12,5, 23,2, 5.8, 7.3, 6,8) def sqrt1(x): y = math.sqrt(x) return y def sqrt2(x): y = numpy.sqrt(x) return y print('・mathのsqrt()でリストの値で平方根を計算') sq_list1 = map(sqrt1, sq_list) print(tuple(sq_list1)) print('・numpyのsqrt()でタプルの値で平方根を計算') sq_tuple1 = map(sqrt2, sq_tuple) print(tuple(sq_tuple1)) |
出力結果
・mathのsqrt()でリストの値で平方根を計算
[3.4641016151377544, 4.898979485566356, 2.23606797749979, 2.0, 2.8284271247461903]
・numpyのsqrt()でタプルの値で平方根を計算
(3.4641016151377544, 2.23606797749979, 4.795831523312719, 1.4142135623730951, 2.4083189157584592, 2.701851217221259, 2.449489742783178, 2.8284271247461903)
map()を使用することで、イテレータの値を平方根(ルート)でまとめて計算しています。
立方根を計算する方法
Pythonで立方根を計算するにはmathライブラリのpow()かnumpyライブラリのcbrt()を使用します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import math import numpy num1 = 8 num2 = 27.9 def cbrt1(x): y = math.pow(x, 1/3) return y def cbrt2(x): y = numpy.cbrt(x) return y print('・mathのpow()で立法根を計算') print(cbrt1(num1)) print('・numpyのcbrt()で立法根を計算') print(cbrt2(num2)) |
出力結果
・mathのpow()で立法根を計算
2.0
・numpyのcbrt()で立法根を計算
3.0329696728893984
mathライブラリのpow()かnumpyライブラリのcbrt()によって立方根を計算することができます。
今回のポイント
sqrt()で平方根(ルート)を計算
⚫︎ Pythonで平方根(ルート)を計算するにはmath.sqrt()かnumpy.sqrt()を使用する
(mathライブラリをインポートするかnumpyライブラリをインポートする必要がある)
⚫︎ sqrt()のパラメータが正の数である場合は、平方根の計算を行なわれる
⚫︎ sqrt()のパラメータが負の数である場合は、平方根の計算を行なわれない
⚫︎ sqrt()のパラメータが0である場合は、平方根の計算を行なわれ、「0」となる
⚫︎ sqrt()のパラメータが無限大である場合は、平方根の計算を行なわれ、「inf」となる
⚫︎ イテレータの値から平方根(ルート)でをまとめて計算するにはmap()を使用する
⚫︎ Pythonで立方根を計算するにはmathライブラリのpow()かnumpyライブラリのcbrt()を使用する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。