【松尾研データサイエンティスト育成講座】第2章・練習問題を解いてみた:Numpy編

今回から「第2章  Numpy、Scipy、Pandas、Matplotlibの基礎」です。Numpy、Scipy、Pandas、Matplotlib。いずれもPythonによるデータ操作には欠かせないライブラリです。さっそく練習問題を解いてみました。

 

2.1.1 Numpyの基礎

<練習問題 1>
1から50までの自然数の和を計算するプログラムを書いて、最後の計算結果を表示させるプログラムを書いてください。ただし、Numpyを使ってください。

Numpyのarange()を使えば、1から50までの自然数を生成するのも一瞬です。個人的に気に入っているのは、「50+1」という書き方。「大切なのは、あくまで50という数字だよ」と明示的に表しています。この表記に出合うまでは、当然のように「51」的な書き方をしていました。ええ、アホでした。

 

<練習問題 2>

正規分布に従う乱数を10個発生させて配列を作成してください。また、その中での最小値、最大値、合計を求めるプログラムを書いてください。

私はprintで文字列と数字の入った変数(つまりint型もしくはfloat型)を一度に出力する時、変数部分をいちいち文字列に型変換する癖がありました。でも、文字列と変数の間はカンマで区切るだけでOKなのだな、とこの教材を見て学んだ次第。冗長な書き方はやめていきたいです。

 

<練習問題 3>
要素がすべて3の5行5列の行列を作成し、その行列の2乗をする計算をしてみましょう。

3問のうち、いちばん解いていて楽しかったのがこれでした。array作成時に全要素を同じ数で満たす関数としてはzeros()(全要素0)とones()(全要素1)が有名です。でも、全要素を任意の数で満たすfull()なんていうのもあったんですね。今回調べて初めて知りました。面白い!

 

なお情けないですが、行列やベクトルの知識が必要となる「2.1.2 Scipyの基礎」の練習問題は学力不足によりパスさせていただきます。ごほごほ……。