数値計算

Python スプライン曲線を作成し、その線上の多数の点座標をcsvファイルに出力する

本記事では、下図のようなスプライン曲線を作成する雛形コードを載せました。 上図左のスプライン曲線の作成コード部分には、https://teratail.com/questions/279780#reply-398529 を引用しています。本プログラムでは、上図右のようにスプライン曲線上に任…

Python データ間を線形補完する「scipy.interpolate 」

本記事では、下図のように、青点の間を一次式で補完して赤点を作成する関数を作成する雛形コードを載せました。 上記データは、下図の横軸にA列、縦軸にD列をとったものです。 ■本プログラム #!/usr/bin/env python # coding: utf-8 # In[1]: import pandas …

Python カテゴリ別に平均や標準偏差などの統計量を算出する「pandasのpivot_table」

本記事では、表題の雛形コードを載せました。下図は、機械学習で有名なタイタニックのデータセットです。これを例に説明します。 例えば、インデックスにPclass(チケットクラス)、列名にSex(性別)にして、平均値や標準偏差を算出して表にしたい場合に下…

Python 交互作用図を作成する「interaction_plot」

'22/06/10更新:グラフの体裁のため、雛形コードを多少編集しました。 本記事では、下図のような交互作用図を作成する雛形コードを載せました。縦軸は、出力指標Yのデータ平均で,横軸と凡例は入力因子Xです。 例えば、凡例によって線の傾きが異なることがあ…

Python 実行回数をカウントする。ジェネレータ関数の使い方

本記事では、ジェネレータ関数の記述例を載せました。例えば、あるプログラムの途中で、ある関数が実行された回数を数えたい場合があったとします。この時、同時にこのジェネレータ関数オブジェクトを実行することで実現できます。(もしくは、実行したい内…

Bash シェルスクリプト内で小数点計算をするため、python -cを使用する方法

バッシュスクリプト(Bash Script)の計算では、小数点は切り捨てられて整数になります。例えば、7/4=1.75ですが、bashでは1になります。そこで、スクリプト内でパイソンコマンド(Python Command)の-cを用いることで1.75と計算できます(下図)。 ■本プロ…

Python 小数点以下の桁数で四捨五入する「Decimal」

標準モジュールのdecimalをインポートして使用します。 from decimal import Decimal, ROUND_HALF_UP pai = 3.141592 # 四捨五入して小数第3位までの数字にする(小数第4位を四捨五入) a = Decimal(str(pai)).quantize(Decimal('0.001'), rounding=ROUND_HA…

Python 確率によって分岐する関数の作成

例えば、コインの表(omote)と裏(ura)の出現確率は、通常50%である。しかし、コンピュータ上でその確率に差を設けることができる。下図は、omoteの確率を10%、uraの確率を90%に設定して、20回試行した結果である。明らかに、omoteの出現数が少ないこと…

Python 重複プロット点を避ける散布図+近似式

本記事では下図のような散布図を作成する雛形コードを作成しました。これは、seabornのregplotメソッドで、x_jitterを使用することでできます。jitterはゆらぎです。 上記の元データは下図のようなcsvです。x列が横軸にプロットするx値、y列が縦軸にプロット…

Python Excelセルに数式を書き込む。さらに棒グラフを作成する「OpenPyXL」

下図は、例題用に適当に作成した月別のぶどうの売り上げ表です。A列に月、B列に商品単価、C列に売り上げ個数としたエクセルファイルです。 本プログラムを実行すると、下図のようにD列に月別の売り上げをセルに数式で書き込みます。この時、D列の最終行に合…

Python 外れ値を除去する

本記事では、外れ値を削除する雛形コードを載せました。判定には、四分位範囲の考え方を用いたコードです。その定義では、下側25%(中央値の下側の更に中央値)、上側75%(中央値の上側の更に中央値)点を取得して、その幅から計算して除去するラインを決…

Python 工程能力指数Cpkを計算する「pandas」

本記事では、csvファイルから各列のCpk(cpu, cplの小さい方)を計算して、csvファイルに出力する雛形コードを載せました。 また、下図のようにヒストグラムも作成します。 使用した例題のcsvデータの作成方法は、次のリンク先を参照下さい。https://hk29.ha…

Python Pandasの列に対して桁数を指定して四捨五入する「decimal」

'21/06/12更新:整数の場合に加えて、小数点の場合の例も追記しました。 本記事では、pandas(パンダス)データフレーム形式の列データに対して、四捨五入する雛形コードを載せました。下図はその例で、列名「RM」と「PRICE」は整数に、それ以外の列は小数点…

Python 要素数の和が一定値となる制約の元に、整数の乱数を作成する「numpy」

'22/03/12更新:自然な分布になる雛形コードも追記しました。 本記事では、例えば複数のパラメータA, B, Cの3つがあって、それらの和が一定値Sの制約条件の元に、整数の乱数を作成する雛形コードを載せました。下図は、S=150と指定して2000水準作成した例で…

Python 連番リストを作成する。覚えておくべき7例

'21/09/27更新:連番に0埋め(ゼロパディング)したい場合のコードも追記しました。 昇順、降順、小数点刻みについて、下図のように雛形コードを6例載せました。ループで回す場合や、適当なグラフを描画したい場合などに使えます。 以上 <広告> // リンク

Python 新型コロナのcsvファイルを題材にデータ処理とグラフ化する「pandas」

本記事では、新型コロナに関する厚生労働省のHP (オープンデータ|厚生労働省)から入手できるcsvデータを例にpandasでデータを扱う雛形コードを載せました。Pythonでcsvなどのテキストファイルを扱うには十中八九pandas(パンダス)を利用することになります…

Python 任意の関数上の任意の(x,y)範囲内の点を乱数で多数作成し、csvファイルに保存する

本記事では、データ点数とx,y各々の上下限範囲を指定して、一様乱数で生成する雛形コードを載せました。このコードの活用は、例えば、何かしらのデータ分析によって得られた重回帰分析による2変数の回帰式を関数に設定します。その関数上に沿った多数のデー…

Python 格子点(グリッド)を線形補完して等高線図を作成する「scipy.interpolate.griddata」

'22/03/24更新:等高線の数を指定数に、等間隔に自動分割する機能を追加。 等高線図を作成するためのcsvファイルを準備します。実験データやシミュレーションデータを想定しています。下図はそのcsvファイルの例で、少なくともx,y,zの3列が必要です。グラフ…

Python DOE水準表を作成してcsvファイルに出力する

'23/11/05更新:コードの可読性を向上させました。 本記事では、Pythonで任意の数の組み合わせによるDOE(実験計画法)を作成する雛形コードを載せました。 使用方法は、本コード中にある「param_dict」と名付けた辞書に、作成したい水準の各パラメータを設…

Python モンテカルロシミュレーションにより円周率π=3.14を導く

モンテカルロ法とは乱数を用いて行うシミュレーションの手法のことです。本記事の内容は、ググったら出てくるような内容をPythonを用いて実行できる雛形コードを載せました。本コードの特徴は次の2つです。1. 乱数を一様乱数の場合と、正規乱数の場合で実行…

Python 数列のリストを作成する「Sympy」

本記事では、等差数列や等比数列のリストを作成する雛形コードを載せました。下図上のリストは、初項1で交差5の等差数列、下図下のリストは、初項1、公比3の等比数列です。 ■本プログラム # -*- coding: utf-8 -*- #!/usr/bin/env python from sympy import …

Python 円周率が3.05より大きいことを証明せよ(東大の入試問題)をプログラムで確かめる

πの定義は、円の面積=πr^2 もしくは、円周=2πrです。このいずれかを用いて証明することになります。 下図は正六角形と正十二角形の図です。多角形になる程、円に近づく様子がわかります。 下図は、その一辺を計算する方法です。円周=2πrを証明することに…

Python 株価データの欠損値をその前後の値で補完後、単純移動平均を算出する「pandas」

'20/05/16更新:移動平均計算を2つ→3つに増やし、計算によって生じた欠損値の行を削除してcsvファイルに出力する仕様に更新した。 本記事では、下図のような単純移動平均のグラフと、そのデータをcsvファイルで保存する雛形コードを載せています。 ●株価デー…

Python 台車駆動型倒立振子を作成する「matplotlib.animation」

本記事では、下記リンク先のような振り子動画を作成します。 www.youtube.com 動画を保存するためのgif出力は、ImageMagickを使用します。インストールは下記リンクで、Windows版はexeファイルを実行します。http://www.imagemagick.org/script/download.php…

Python 微分積分いい気分(^^♪「Sympy」

'21/06/13更新:インタラクティブ環境(例, JupyterLab)で使いやすいように記事の構成を刷新しました。 本記事では、Sympyで簡単に微分,不定積分,定積分の式や解を出力する雛形コードを記載しました。ライブラリのインストールは次の通りです。 # pipの場合…

Python データセットに関数フィッティング(近似式)してグラフに記入する「Numpy×SciPy」

'24/05/06更新:可読性向上のため、コードをクラスに書き換えました。 本記事では、データセットに対して、所望の関数にフィッティングして近似式を作成する雛形コードを載せました。scipyのoptimize.curve_fitを利用します。 ▼比例近似:y = ax にしたい場…

Python 二変数関数の等高線図、3D図を描画する方法

'20/08/10更新:記事とコードを若干編集しました。 本記事では、2つの方法について雛形コードを載せました。■1. numpyのndarray型の「二重配列」でデータセットしてグラフ化する方法二変数関数について、等高線図と三次元図を描画した例が下図5つです。 ■2. …

Python 実験データを自作関数にフィッティングする「scipy.optimize」

'24/05/06更新:コードの可読性向上のため、コード中のパラメータに説明を追記しました。 本記事では、自作のガウス関数にフィッティングする例の雛形コードを載せました。下図は、本プログラム実行結果です。青点は実験データ(便宜上のサンプルデータ)で…