Python で立方根を取得する

Muhammad Waiz Khan 2023年10月10日
  1. Python 指数記号 ** を使って立方根を取得する
  2. Python は pow() 関数を使用して立方根を取得する
  3. Python は NumPy ライブラリの cbrt() 関数を用いてキューブルートを取得する
Python で立方根を取得する

このチュートリアルでは、Python で整数や浮動小数点数の変数の立方体を取得するためのさまざまな方法を説明します。Python で数値の立方根を取得するには、まず、数値の指数を取得する方法と、Python で数値の指数を取得するためにどのような演算子が使用されるかを知る必要があります。また、その立方根を計算しながら負の数を処理する方法と、Python で数の立方根を取得するために使用する演算子やメソッドについても見ていきます。

Python 指数記号 ** を使って立方根を取得する

Python の ** 記号を使って数の指数を計算することができます; これは累乗演算子とも呼ばれています。立方根を計算するには、1/3 に等しい乗を設定します。

この方法ではなぜか負の数の立方根が正しく計算されないことに注意しなければなりません。例えば、整数 -27 の立方根は -3 であるはずなのに、Python は 1.5000000000000004+2.598076211353316j を返します。この問題は、立方根を計算する前に整数の負の符号を無視することで簡単に処理できます。

以下のコード例は、Python で正の数と負の数の立方根を計算する方法を示しています。

def get_cuberoot(x):
    if x < 0:
        x = abs(x)
        cube_root = x ** (1 / 3) * (-1)
    else:
        cube_root = x ** (1 / 3)
    return cube_root


print(get_cuberoot(64))
print(get_cuberoot(-64))
print(round(get_cuberoot(-64)))

出力:

3.9999999999999996
-3.9999999999999996
-4
注意
上の例でわかるように、キューブルートの正確な値を得るためには、答えを丸める必要があるかもしれません。

Python は pow() 関数を使用して立方根を取得する

関数 pow() は第 1 引数に数値(整数でも浮動小数点以下でも構いません)を、第 2 引数に数値の指数または累乗を受け取り、与えられた数値の累乗を返します。

第 2 引数に 1/3 を渡すことで、目的の数値の立方根を計算することができます。関数 pow() は負の数の立方根に対しても間違った答えを返します。したがって、負の数は個別に処理する必要があります。

以下のコード例は、pow メソッドを用いて数値の立方根を計算する方法を示しています。

def get_cuberoot(x):
    if x < 0:
        x = abs(x)
        cube_root = pow(x, 1 / 3) * (-1)
    else:
        cube_root = pow(x, 1 / 3)

    return cube_root


print(get_cuberoot(64))
print(get_cuberoot(-64))
print(round(get_cuberoot(-64)))

出力:

3.9999999999999996
-3.9999999999999996
-4

Python は NumPy ライブラリの cbrt() 関数を用いてキューブルートを取得する

NumPy ライブラリの cbrt() 関数は、数値の立方根を計算する最も簡単な方法です。これは負の入力でも問題にならず、上で説明したメソッドとは異なり、入力 64 に対して 4 のような正確な数値を返します。

このメソッドの問題点は、Python の組み込み関数ではないことと、cbrt() 関数を使用するために NumPy ライブラリをインストールする必要があることです。

以下のサンプルコードは、cbrt 関数を使って Python で数値の立方根を取得する方法を示しています。

import numpy as np

print(np.cbrt(64))
print(np.cbrt(-64))
print(np.cbrt(9.4))

出力:

4.0
-4.0
2.11045429449015

関連記事 - Python Math