ここではPythonにおける数値計算について解説しています。型式、基本的な演算、任意の桁数への丸めについてまとめています。
リンクが貼ってある箇所はその先でより詳しく解説しているので、ご参照下さい。
この記事の対象
はじめに
Pythonでは演算を行う場合、同じ型でないといけません。型が違う場合は、演算を行う前に型を合わせる必要があります。
数値同士の演算
i = 2
j = 1
print(i+j)
#3
int同士の演算なので出力可能です。
数値と文字列の演算
i = 2
j = "sec"
print(str(i)+j)
#2sec
数値と文字列の演算では、str型で揃えると演算できます。
型が分からない場合
上記のように数値と文字列を演算したい場合にErrorが出たら型を調べる必要があります。そんなときにtype()関数を用いることで調べられます。
i = 2
j = "sec"
print(str(i)+j)
print(type(i),type(j))
#<class 'int'> <class 'str'>
演算における型
ここでは、標準ライブラリでの演算について使用例をまとめています。
基本的な型
項目 | 内容 |
str() | 文字列型に変換 |
float() | 浮動小数点型に変換 |
int() | 整数型に変換 |
基本的な種類として上記の3つが挙げられます。
しかし、これだけでは数値を表現できない場合があります。例えば複素数などです。そのような場合にはcomplex型を用いることができます。
Complex型
co = 1 + 2j
print(co)
print(type(co))
#(1+2j)
#<class 'complex'>
虚数単位を「j」にすることでComplex型になります。電気の方で使用する方は「i」ではないのでご注意下さい。
コンストラクタでの表現方法は以下になります。
co = complex(2, 8)
print(co)
print(type(co))
#(2+8j)
#<class 'complex'>
任意の桁数で丸める(偶数への丸め) ⇒ round()
floatなどを使用する場合で桁数を丸めたい場合はround()関数を用いることで簡単にできます。ただし、注意点としては四捨五入ではなく偶数への丸めになることです。
import math
a = math.pi
print(a)
print(round(a,3))
「round(引数,桁数)」で任意の桁数で丸められます。
【結果】
3.141592653589793
3.142
その他種類
項目 | 内容 |
complex型 | Pythonの標準として複素数を表現できる方法です。 |
fractionsモジュール | 分数の有理数を表現できる方法。fractionsモジュールのFractionクラス (有理数型)を用いることで表現可能です。 |
科学数値計算用パッケージ
項目 | 内容 |
NumPy | 行列演算を簡単に記述できる特徴があり、Pandasと一緒に用いる場合が多いです。リンク先ではNumPyを用いたデータ操作について解説しています。 |
Scipy | 記号を定義して演算できる代数計算ライブラリです。リンク先ではScipyを用いたデータ操作について解説しています。 |
Matplotlib | 数値を可視化するライブラリです。2次元、3次元の両方とも取り扱えて様々な種類のグラフを描画することが可能なものです。リンク先ではMatplotlibを用いたデータ操作について解説しています。 |
TensorFlow | Googleがオープンソースで公開している機械学習ライブラリです。機械学習や深層学習で使用されることが多いですが、大規模な数値計算、様々な数値演算ができる汎用的なライブラリです。本サイトでは取り扱いませんが、便利なライブラリなので挙げました。 |
BayesPy | ベイズ推定のためのライブラリです。モデルを構築し、データを観察して事後推論を実行するものです。本サイトでは取り扱いませんが、便利なライブラリなので挙げました。 |
Theano | 多次元配列を持つ数式を定義、最適化、評価するためのライブラリです。大量データを高速に処理できる特徴があります。本サイトでは取り扱いませんが、便利なライブラリなので挙げました。 |
Seaborn | データの可視化が簡単にできるライブラリです。Matplotlibよりは知名度がないですが、「Multi-plot grids」での複数要素を一括で可視化できるので便利です。 |
データ操作用パッケージ
数値計算を行う際、非常に良く利用されるパッケージがあります。同時に知っておくと良いです。
項目 | 内容 |
Pandas | 数値計算や文字データを操作する際に頻繁に利用されるものに「Pandas」というものがあります。リンク先では、Pandasのデータ操作について概要を解説しています。 |
数値計算のサンプルコード
項目 | 内容 |
簡易版熱膨張量の計算プログラム | リンク先では、簡易式の熱膨張量の計算プログラムを紹介しています。 |
おすすめの書籍
体系的に学べる一冊でおすすめです。公式サイトのチュートリアルと併用して読むと理解が深まると思います。
それぞれのライブラリの使用方法を簡潔に説明されています。勉強を始めたばかりの方には余計な情報が書かれていないので、躓くことが無いと思います。
大学教養レベルの計算から丁寧に説明されており、何度も読み返して基礎力を向上させるのに適した1冊です。