« 2020年1月 | トップページ | 2020年3月 »

2020年2月27日 (木)

各種プログラミング言語やスクリプト言語における円周率πの値

C#(Visual Studio 2017)

> Math.PI.ToString("N20")
"3.14159265358979000000"

Java(openjdk 12.0.1)

jshell> System.out.printf("%.20f\n", Math.PI)
3.14159265358979300000

R(3.6.0)

> cat(sprintf("%.20f\n", pi))
3.14159265358979311600

Python

>>> import math
>>> "{:.20f}".format(math.pi)
'3.14159265358979311600'

参考までに、円周率の小数点以下50位までの値は以下のとおり。

3.14159 26535
89793 23846
26433 83279
50288 41971
69399 37510

2020年2月26日 (水)

[Python]フィールドが1つ以上の空白で区切られているテキストファイルを簡単に読み込む

pandasのread_csv関数を使う。「Pythonで動かして学ぶ!あたらしい機械学習の教科書 第2版」の図5.1に掲載されているデータで試してみる。そのデータは以下のとおり。

15.43 170.91
23.01 160.68
5.00 129.00
12.56 159.70
8.67 155.46
7.31 140.56
9.66 153.65
13.64 159.43
14.92 164.70
18.47 169.65
15.48 160.71
22.13 173.29
10.11 159.31
26.95 171.52
5.68 138.96
21.76 165.87

これをファイルch5_data.txtに保存しておく。

>>> import pandas as pd
>>> df = pd.read_csv('ch5_data.txt', header = None, sep = '\s+')
>>> df
0 1
0 15.43 170.91
1 23.01 160.68
2 5.00 129.00
3 12.56 159.70
4 8.67 155.46
5 7.31 140.56
6 9.66 153.65
7 13.64 159.43
8 14.92 164.70
9 18.47 169.65
10 15.48 160.71
11 22.13 173.29
12 10.11 159.31
13 26.95 171.52
14 5.68 138.96
15 21.76 165.87

読み込まれたデータはpandasのDataFrame型(データフレーム)。これをNumPyのndarray型(行列)に変換するにはto_numpy関数を使う。

>>> d = df.to_numpy()
>>> d
array([[ 15.43, 170.91],
[ 23.01, 160.68],
[ 5. , 129. ],
[ 12.56, 159.7 ],
[ 8.67, 155.46],
[ 7.31, 140.56],
[ 9.66, 153.65],
[ 13.64, 159.43],
[ 14.92, 164.7 ],
[ 18.47, 169.65],
[ 15.48, 160.71],
[ 22.13, 173.29],
[ 10.11, 159.31],
[ 26.95, 171.52],
[ 5.68, 138.96],
[ 21.76, 165.87]])

NumPyの関数を試してみる。以下は1列目と2列目の最大値をそれぞれ抜き出した例。

>>> np.max(d[:, 0])
26.95
>>> np.max(d[:, 1])
173.29

« 2020年1月 | トップページ | 2020年3月 »

無料ブログはココログ

■■

■■■