佐賀に棲む日々

佐賀に引っ越してきました。佐賀での生活を綴っています。

Numpyのreshape(-1,1)について

Pythonについてのテクニック的な話です。

 

もしも機械学習に関心があって、ある程度基礎的な文法も学んでいる方に

 

おすすめなのが、Able programingさんです。

 

www.youtube.com

 

わたしとしては、非常にわかりやすい動画だと思っています。

 

痛いところまで手を伸ばしてくれる、親切な講義になっています。

 

ただしPython文法の基礎は理解していないとついてくのは難しいかもです。

 

難しいと思ったら、焦らず基本的な学習にもどってみてください。

 

急がば回れ、です。

 

今回以降、しばらくPythonについてはこのAble Programingさんの動画について、

 

気になったところをピックアップしていこうと思います。

 

当面の題材はこちらです。

 

www.youtube.com

 

Numpyの超入門ということで、わかりやすく解説してくれています。

 

今日はそのなかで、動画の08:20あたりから解説が始まる

 

 reshape(-1,1)

 

を取り上げておこうと思います。

 

昔、ほかのオンライン講座を視聴していた時に、

 

このreshape(-1,1)という処理が突然でてきて、

 

そこがどうしても理解できなくて挫折したという苦い経験があります。

 

解説を見ていただければおわかりのように、

 

左側の”-1”の方には、ほとんど意味がないんですね。

 

右側の”1”の方に力点があるのであって、

 

この処理は多次元配列を、列ベクトルにするというものなのです。

 

たとえば3行4列であれば、要素が12コあるので、12行1列になるし、

 

5行7列であれば、要素が35コあるので、35行1列にするというわけです。

 

具体的にはこういうことです。

 

import numpy as np
array = np.array([[1,2],
                  [3,4],
                  [5,6]])
print(array)

 

3行2列の配列をつくりました。

 

この配列にreshape(-1,1)の処理をします。

 

array.reshape(-1,1)

 

結果は下のように返ってきます。

 

array([[1],
       [2],
       [3],
       [4],
       [5],
       [6]])

 

3行2列が6行1列になりました。

 

「だからなに?」と思った方もいると思います。

 

機械学習の勉強で回帰分析などをやると出てくることがあると思います。

 

その時はぜひ、この処理のことを思い出してみてください。

 

Able programingさんには本当に感謝です。

 

有難うございます。