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) |
【Python】数値計算プログラミング
このページでは、Python 2, 3による数値計算について入門者向けに解説しています。
【応用】乱数、解の計算、微分方程式
– | 数値計算の基礎 |
---|---|
乱数 | ■乱数 ■整数乱数 ■実数乱数 ■配列シャッフル ■配列要素のランダム抽出 |
数値計算 | ■モンテカルロ法 |
解の算出 | ■2分法 ■ニュートン法 |
微分方程式 | ■オイラー法 ■修正オイラー法 ■ルンゲクッタ法 |
コメント