【Python】標準モジュールで数値計算

Pythonの標準モジュールで数値計算する方法について入門者向けにまとめました。

【基礎】四捨五入、絶対値、べき乗、指数関数、対数関数、ラジアン↔度

Python3ではround(x, i)関数が四捨五入でなく丸めになります。
そのため自分で関数を作ります。

■四捨五入

# -*- coding: utf-8 -*-
import math

def my_round(x, d=0):
    p = 10 ** d
    return float(math.floor((x * p) + math.copysign(0.5, x)))/p


x = 1.23

x = my_round(x, 1)
    
print(x) # 1.2
関連ページ
【Python】四捨五入(round)

■絶対値

# -*- coding: utf-8 -*-

a = -10
a = abs(a)
print(a)
関連ページ
【Python】絶対値の計算(abs関数)

■べき乗

# -*- coding: utf-8 -*-

x = 5
y = pow(x,2)
print(y) # 25
関連ページ
【Python】べき乗の計算(pow関数)

■平方根

# -*- coding: utf-8 -*-
import math

x = 5
y = math.sqrt(x) # 2.2360679775 
print(y)
関連ページ
【Python】平方根の計算(math.sqrt)

■指数関数

# -*- coding: utf-8 -*-
import math

x = 5
y = math.exp(x) # 148.413159103
print(y)
関連ページ
【Python】指数関数の計算(math.exp)

■底が10の対数関数

# -*- coding: utf-8 -*-
import math

x = 10
y = math.log10(x)
print(y) # 1.0
関連ページ
【Python】対数関数(底は10)の計算(math.log10)

■自然対数eの対数関数

# -*- coding: utf-8 -*-
import math

x = 5
y = math.log(x) # 1.60943791243
print(y)
関連ページ
【Python】対数関数(底は自然対数e)の計算(math.log)

■ラジアン→度

# -*- coding: utf-8 -*-
import math

rad = 3.14

# ラジアンを度に変換
deg = math.degrees(rad) # 179.908747671

# 結果表示
print(deg)

■度→ラジアン

# -*- coding: utf-8 -*-
import math

deg = 180

# 度をラジアンに変換
rad = math.radians(deg)

# 結果表示
print(rad) # 3.14159265359
関連ページ
【Python】ラジアンを度に変換(math.degrees)
【Python】度をラジアンに変換(math.radians)

Pythonで割り算の商・余りを計算には、divmod関数を用います。

■割り算の商・余りを計算

x = divmod(11, 3)
print(x) # (3, 2)
関連ページ
【Python】divmod関数で割り算の商・余りを計算

【統計量】最大値、最小値、合計値、平均値、調和平均、中央値、最頻値、母分散、母集団の標準偏差、不偏分散、標本標準偏差

■最大値

# -*- coding: utf-8 -*-

data = [1,2,3,4,5]  # 配列の生成

dmax = max(data)    # 最大値を計算

print(dmax)         # 5
関連ページ
1 【Python】リストの最大値(max関数)

■最小値

# -*- coding: utf-8 -*-

data = [1,2,3,4,5]  # 配列の生成

dmin = min(data)    # 最小値を計算

print(dmin)         # 1
関連ページ
1 【Python】リストの最小値(min関数)
# -*- coding: utf-8 -*-

data = [1,2,3,4,5]  # 配列の生成

dsum = sum(data)    # 合計(総和)を計算

print(dsum)         # 15
関連ページ
1 【Python】リストの合計値(sum関数)

■平均値

# -*- coding: utf-8 -*-

data = [1,2,3,4,5]          # 配列の生成

ave = sum(data)/len(data)   # 合計/配列の長さ(データの個数)で平均値を計算

print(ave)                  # 3
関連ページ
1 【Python】リストの平均値(sum/len関数)

Python標準ライブラリ「statistics」では、リストの基本統計量(平均、中央値、最頻値、分散、標準偏差など)を簡単に計算できます。

項目 メソッド
平均(算術平均) statistics.mean()
調和平均 statistics.harmonic_mean()
中央値 statistics.median()
最頻値 statistics.mode()
母分散 statistics.pvariance()
母集団の標準偏差 statistics.pstdev()
不偏分散 statistics.variance()
標本標準偏差 statistics.stdev()

■サンプルコード

import statistics
import math

data = [1, 2, 3, 4, 5]

mean = statistics.mean(data)
print(mean) # 3


median = statistics.median(data)
print(median) # 3


median_low = statistics.median_low(data)
print(median_low) # 3

median_high = statistics.median_high(data)
print(median_high) # 3

pvariance = statistics.pvariance(data)
print(pvariance) # 2

pstdev = statistics.pstdev(data)
print(pstdev) # 1.4142135623730951

variance = statistics.variance(data)
print(variance) # 2.5

stdev = statistics.stdev(data)
print(stdev) # 1.5811388300841898
関連記事
1 【Python/statistics】平均、中央値、最頻値、分散、標準偏などの計算

【三角関数】sin、cos、tan、asin、acos、atan

■正弦(sin)

# -*- coding: utf-8 -*-
import math

# 度[deg]
deg = 90

# 度[deg]をラジアン[rad]に変換
rad = math.radians(deg)

y = math.sin(rad)

# 結果表示
print(y) # 1.0
関連ページ
1 【Python】sin関数の計算(math.sin)

■余弦(cos)

# -*- coding: utf-8 -*-
import math

# 度[deg]
deg = 90

# 度[deg]をラジアン[rad]に変換
rad = math.radians(deg)

y = math.cos(rad)

# 結果表示
print(y) # 6.12323399574e-17
関連ページ
1 【Python】cos関数の計算(math.cos)

■正接(tan)

# -*- coding: utf-8 -*-
import math

# 度[deg]
deg = 45

# 度[deg]をラジアン[rad]に変換
rad = math.radians(deg)

y = math.tan(rad) # 1.0

# 結果表示
print(y)
関連ページ
1 【Python】tan関数の計算(math.tan)

■逆正弦(asin)

# -*- coding: utf-8 -*-
import math

x = 1

rad = math.asin(x)

# ラジアンを度に変換
deg = math.degrees(rad)

# 結果表示
print(rad) # 1.57079632679
print(deg) # 90.0
関連ページ
1 【Python】arcsin関数の計算(math.asin)

■逆余弦(acos)

# -*- coding: utf-8 -*-
import math

x = 1

rad = math.acos(x)

# ラジアンを度に変換
deg = math.degrees(rad)

# 結果表示
print(rad) # 0.0
print(deg) # 0.0
関連ページ
1 【Python】arccos関数の計算(math.acos)

■逆正接(atan)

# -*- coding: utf-8 -*-
import math

x = 0.5

rad = math.atan(x)

# ラジアンを度に変換
deg = math.degrees(rad)

# 結果表示
print(rad) # 0.463647609001
print(deg) # 26.5650511771
関連ページ
1 【Python】arctan関数の計算(math.atan)

【応用】乱数、解の計算、微分方程式

数値計算の基礎
乱数 乱数整数乱数実数乱数配列シャッフル配列要素のランダム抽出
数値計算 モンテカルロ法
解の算出 2分法ニュートン法
微分方程式 オイラー法 ■修正オイラー法 ■ルンゲクッタ法
関連記事