Pythonで数値計算をしているとべき乗の計算方法が知りたい場合があるかと思います!
「Pythonのべき乗の計算はどのようにするのだろう?」
「NumPyのべき乗計算はどうやるんだろう?」
そのような方に向けて、この記事ではべき乗の計算について以下の内容で解説していきます。
・ **を使用したべき乗の計算
・ powを使用したべき乗の計算
・ mathを使用したべき乗の計算
・ NumPyを使用したべき乗の計算
べき乗計算の色々な方法をわかりやすく解説していますので、ぜひ参考にしてくださいね!
なお、Pythonの記事については、こちらにまとめています。
**を使用してべき乗の計算をしてみよう!
計算の書式
それでは、**を使用したべき乗計算の書式を見ていきましょう!
べき乗したい数をa、何乗させるかの指数をnとすると以下のように表すことができます!
a ** n
それでは実際のべき乗の計算の方法について見ていきましょう!
「**」を使用したべき乗の計算
実際にべき乗の計算をしてみましょう!
サンプルコードはこちらになります!
print(2 ** 2) print(3 ** 2) print(10 ** 2) print(10 ** 3) print(2 ** 0.5) print(3 ** 0.5) print(2 ** -2) print(10 ** -2) print(0 ** 0)
実行結果
4 9 100 1000 1.4142135623730951 1.7320508075688772 0.25 0.01 1
このようにべき乗計算が簡単にできますね!
指数には、小数やマイナス、0も指定することができるのです!
もしべき乗がよくわからないという方はこちらで「べき乗とは」から解説していますので参考にしてくださいね!
float型のべき乗の計算
次はべき乗したい数(a)がfloat型である場合の計算方法を見ていきましょう!
計算の書式は先程と変わりません!
print(1.5 ** 2) print(2.5 ** 2) print(3.5 ** 2)
実行結果
2.25 6.25 12.25
小数のべき乗も簡単に計算できることがわかりますね!
マイナスのべき乗の計算
今度はマイナスのべき乗の計算について見ていきましょう!
べき乗したい数(a)がマイナスの場合は注意が必要です!
数学の計算と同様に、カッコの内と外でべき乗する場合で計算結果の符号が変わってきます!
print(-2 ** 2) print(-2 ** 3) print((-2) ** 2) print((-2) ** 3)
実行結果
-4 -8 4 -8
powを使用してべき乗の計算をしてみよう!
計算の書式
次はpowでの計算方法について見ていきましょう!
べき乗したい数をa、何乗させるかの指数をnとすると以下のようになります!
pow(a, n)
「pow」を使用したべき乗の計算
それでは実際にサンプルコードを確認しながらpowの計算方法について見ていきましょう!
**と同様にpowでもべき乗の計算ができるのです!
res1 = pow(2,2) print(res1) res2 = pow(2,3) print(res2) res3 = pow(3,2) print(res3) res4 = pow(3,3) print(res4)
実行結果
4 8 9 27
mathを使用してべき乗の計算をしてみよう!
今度はmathを使用したべき乗計算を見ていきます!
mathモジュールは、標準で提供されている数学計算のモジュールです。
mathについて詳しく知りたい方はこちらを参考にしてください!
計算の書式
それでは、書式について見ていきましょう!
書式は、先程のpowとほとんど変わりません!
べき乗したい数をa、何乗させるかの指数をnとすると以下になります!
import math math.pow(a, n)
「math.pow」を使用したべき乗の計算
それではこちらもサンプルコードを見ていきましょう!
mathを使用したべき乗の計算も**やpowと同様に簡単に計算することができます!
import math res1 = math.pow(2,2) print(res1) res2 = math.pow(2,3) print(res2) res3 = math.pow(3,2) print(res3) res4 = math.pow(3,3) print(res4)
実行結果
4.0 8.0 9.0 27.0
「math.pow」の注意点
math.pow()は引数を小数に変換して処理をするため注意が必要です。
サンプルコードを見てください!
pow()の計算結果が整数であるのに対して、math.pow()の計算結果は小数になっていることがわかります!
res1 = pow(3,2) print("pow") print(res1) import math res2 = math.pow(3,2) print("math.pow") print(res2)
実行結果
pow 9 math.pow 9.0
続いてこちらのサンプルコードを実行してください!
pow()とmath.pow()の引数に複素数を渡して、べき乗の計算をしています!
pow()は、正しくべき乗できていることがわかりますが、math.pow()は複素数を小数に変換しようとしてエラーになっていることがわかります!
c = 2+3j print("type") print(type(c)) print("pow") print(pow(c,2)) import math print("math.pow") print(math.pow(c,2))
実行結果
type <class 'complex'> pow (-5+12j) math.pow Traceback (most recent call last): File "exponential/exponential_math_float2.py", line 10, in <module> print(math.pow(c,2)) TypeError: can't convert complex to float
NumPyを使用してべき乗の計算をしてみよう!
今度はNumPyでのべき乗の計算方法を見ていきます!
NumPyとは、Pythonの学術計算ライブラリになります!
NumPyの配列を使用して、高速に少ないコード量で様々な数値計算が行えます。
NumPyでべき乗計算について行っていきますのでNumPyの基本はこちらを見てください!
計算の書式
こちらも書式は、ほとんど変わりません!
以下のような書式になります。
import numpy as np np.power(a, n)
「np.power」を使用したべき乗の計算
サンプルコードを見ていきましょう!
np.powerのべき乗の計算もこれまでに紹介してきた方法とほとんど同じ計算方法で、簡単に計算することができますね!
import numpy as np res1 = np.power(2, 2) print(res1) res2 = np.power(2, 3) print(res2)
実行結果
4 8
NumPy配列でのべき乗の計算
NumPyは、NumPy配列を利用することによって多次元配列でのべき乗計算などもできます!
サンプルコードを見ていきましょう!
このように配列の各要素のべき乗も簡単に計算することができますね!
import numpy as np arr = np.full(10, 2) exp = np.arange(10) result = np.power(arr, exp) print(arr) print(exp) print(result)
実行結果
[2 2 2 2 2 2 2 2 2 2] [0 1 2 3 4 5 6 7 8 9] [ 1 2 4 8 16 32 64 128 256 512]
こちらは2次元の配列のべき乗計算がNumPyで簡単にできることがわかりますね!
import numpy as np arr = np.full((2,5), 2) exp = np.arange(10).reshape((2,5)) result = np.power(arr, exp) print(arr) print(exp) print(result)
実行結果
[[2 2 2 2 2] [2 2 2 2 2]] [[0 1 2 3 4] [5 6 7 8 9]] [[ 1 2 4 8 16] [ 32 64 128 256 512]]
まとめ
いかがでしたでしょうか。
今回は、Pythonでべき乗の計算について学習しました!
Pythonは数値計算のためのライブラリが充実しているので、べき乗計算も様々な方法ですることができます!
特にNumPyを使用した計算は、速度が求められる場面や機械学習でも利用されていますので、しっかりと理解して使えるようにしていきましょう!