ヒガサラblog

サラリーマン攻略法を徹底解説。(出世、就活、上司、仕事、クリアするのはこれだけ。)仕事で使えるプログラミングスキルも多数掲載!

ヒガサラblog

【超簡単】pythonでデータから線形近似式の切片、傾きを算出する方法(numpy演習)

f:id:yshgs_elec:20200612221820j:plain

近年プログラミング言語であるpythonが注目されています

それにともない、これまでエクセルで行っていたような作業を、少しづつpythonでの処理に移行しようとしている人は多いのでないでしょうか?

 

この記事はそんな人のための記事です。

 

今回はpythonを用いて、データから線形近似式を導く方法をご紹介したいと思います。

 

画像付きでわかりやすく説明していきますので、是非みなさんも一緒にやってみましょう。皆さんが普段行っている、エクセルの処理内容からご紹介していきますので、pythonに詳しくない方でも、中身をイメージできるものになっています。

是非、最後までご覧ください。

 

※pythonに興味はあるけど、どうやって始めたらいいのかわからない、という方は、以下の記事をご覧ください。

www.higashisalary.com

 

というわけで早速やっていきましょう!

今回は以下の三つの処理内容に分けてご紹介します。

エクセルで処理した場合の線形近似式の確認

まずはエクセル上で今回やりたい処理をしてみます。

今回は以下のように3×2のデータを準備しました。

このデータをもとに、A列をx軸、B列をy軸にした散布図を作成し、その散布図から線形近似線を追加します。そして最後に、グラフに数式を記載しました。

今回のデータから算出した線形近似式では、以下の画像のように

傾き=1.3077

切片=0.1282

という数値が算出されています。

f:id:yshgs_elec:20200625210447j:plain

ここまでは皆さんが普段行っているような簡単なエクセル作業ですね。

ここからは、python上でこれらの数値を算出していく方法をご紹介します。

 

python用にデータを準備する

python上で実際にこれをやってみる前に、まずは下準備として、pythonで読み込むために、データファイルを準備しておきましょう。先ほど作ったエクセルファイルのA1からB3の領域をコピーし、適当にテキストファイルに張り付けて保存すればOKです。

(私はdata.txtという名前で保存しています。)

出来上がったファイルは以下のようなものです。

これでpythonで処理をする前の下準備は完了です。

f:id:yshgs_elec:20200625211159j:plain

 

pythonで実際に線形近似式の切片、傾きを算出する

前置きが長くなりましたが、本題であるpythonでの処理をやってみましょう。

pythonを起動するためのプロンプトを立ち上げ、先ほど作成したデータファイルが保存してあるディレクトリに移動しましょう。

移動できたら、pythonを起動します。
そして、以下を実行するだけです。

import numpy as np
data=np.loadtxt('data.txt')
x=data[:,0]
y=data[:,1]
a,b=np.polyfit(x,y,1)

 

これだけでaに傾き、bに切片が入っています。

 

ここで 今回の最重要ポイントをまとめておきます。

■np.polyfitという処理を実行することで、エクセルで言う線形近似式の傾きと切片を同時に算出することができる。

 

またその他にも、以下はしっかりと覚えておきたいですね。

■np.loadtxtでテキストデータを数値の配列として読み込むことができる。

■宣言した配列名+[:,*]で読み込んだ配列を列ごとに取り出すことができる。(*の部分は一番左を0としたときの列の順番)

 

最終的な実行結果は以下のようになりました。

実際に読み込んだ配列や、そこから取り出した列を表示させていますので、これを見ればどのような処理がなされているかよくわかると思います

f:id:yshgs_elec:20200625213018j:plain

 そして、本題である切片と傾きですが、

python処理では以下のようになっていますね。

傾き(a)=1.30769.....

切片(b)=0.12820.....

これは最初にエクセルで算出した以下の数値と一致しています。

傾き=1.3077

切片=0.1282

 

というわけで、python上でもエクセルと全く同じ処理が簡単にできることが確認できましたね。

今回は3×2という非常に小さいデータでの演習でしたが、全く同じ処理内容で、大きなデータを扱うことも可能ですので、是非皆さんも習得しておきましょう。

 

終わりに

pythonはAIの開発にも用いられており、今非常に注目されているプログラミング言語です。pythonを使いこなせすことができれば、普段の業務を自動化したり、新しいシステムを開発することが可能になります。そうなれば、あなたの社内での評価はうなぎのぼりになるでしょう。また、会社に何かあったり、家庭の事情なんかで転職する必要が出てきたときにも、このスキルを身につけておけば、困ることはそうそうないと思います。

私のブログでは、今回紹介したpythonの他にもエクセルVBAなどのプログラミングスキルも多数紹介しています。是非その他の記事も見ていただき、私と一緒にスキルアップしていきましょう!!

 

それではまた!! 

 

 

 関連記事

www.higashisalary.com

www.higashisalary.com

www.higashisalary.com