開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.7 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(データを統計量で記述する)、3.9(プログラミングチャレンジ)、問題3-1(よりよい相関係数を求めるプログラム)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 def find_corr_x_y(x, y): n = len(x) if n != len(y): raise Exception('長さが等しくないので相関は計算できない。') sum_prod_x_y = sum([xi * yi for xi, yi in zip(x, y)]) sum_x = sum(x) sum_y = sum(y) x_square_sum = sum([xi ** 2 for xi in x]) y_square_sum = sum([yi ** 2 for yi in y]) squared_sum_x = sum_x ** 2 squared_sum_y = sum_y ** 2 num = n * sum_prod_x_y - sum_x * sum_y den_t1 = n * x_square_sum - squared_sum_x den_t2 = n * y_square_sum - squared_sum_y den = (den_t1 * den_t2) ** (1/2) return num / den if __name__ == '__main__': x = list(range(10)) y = list(range(9, -1, -1)) for x0, y0 in [(x, x), (x, y), (x + [1], y), (x, y + [1])]: try: print(find_corr_x_y(x0, y0)) except Exception as err: print(err)
入出力結果(Terminal, Jupyter(IPython))
$ ./sample1.py 1.0 -1.0 長さが等しくないので相関は計算できない。 長さが等しくないので相関は計算できない。 $
1 コメント :
You must participate in a contest for probably the greatest blogs on the web. I'll advocate this site! online casino games
コメントを投稿