Python numpyの基本

Python学習【365日チャレンジ!】315日目のマスターU(@Udemy11)です。

そろそろ年賀状を出さないと行けない時期ですが、年賀状は書き終えましたか?

書き終えるというより、印刷が終わって、投函したかというのが正しいのかもしれませんが、私は文字の練習として、毎年宛名だけ自筆で書くようにしています。

段文字を書く機会がないので、こんな時に文字を書く練習をしないとどんどん下手くそになっていくんですよね。

といってもそんなに文字がきれいなわけじゃないんですけどね。。。

ま〜、たまに時間をかけて文字を書くのも頭の体操になるので、データ化する予定はありません。

それこそ「Pythonを活用したらいいんじゃない?」って声が聞こえてきそうですが、生活の一部にアナログを入れるのも大切ですよね。

それでは今日も、Python学習を始めましょう。

昨日の復習

昨日は、機械学習を効率よく処理の高速化ができるnumpyの基本を学習しました。

基本的な配列のarrayから始まり、shapendimsizearangeなどを学習しました。

Pythonの標準ライブラリのarrayも配列を扱えますが、多次元配列を扱えないのに対して、numpy.arrayは、多次元の配列を扱えるのが特徴です。

くわしくは昨日の記事をごらんください。

今日は、arangeを使った配列の簡単な作成方法や値のたくさん入った配列の表示方法について学習します。

reshape

昨日は、直接np.arrayに値を入れたり、arangeを使って、規則性のある配列を作成しましたが、arrangeの引数に整数を入れると、整数の数だけインデックス値の入った配列を作ることができます。

import numpy as np
a = np.array(6)
a
# arrray([0, 1, 2, 3, 4, 5])

arangeで値の数を指定して、配列を生成したあと、reshapeを使って配列を2次元や3次元の配列に変えることができます。

a = np.array(6).reshape(2, 3)
a
# array([[0, 1, 2],
#        [3, 4, 5]])

a.ndim
# 2

a = np.arange(24).reshape(2, 3, 4)
a
# array([[[ 0,  1,  2,  3],
#         [ 4,  5,  6,  7],
#         [ 8,  9, 10, 11]],
# 
#        [[12, 13, 14, 15],
#         [16, 17, 18, 19],
#         [20, 21, 22, 23]]])

a.ndim
# 3

6この配列を作って、2行3列の配列に整形したあと、ndimで何次元かを出力しています。

2つ目では、24個の配列を2個分の3行4列の配列に整形しているので、3次元の配列になっています。

set_printoptions

次に、数がたくさんある配列を表示してみます。

np.arange(10000)
# array([   0,    1,    2, ..., 9997, 9998, 9999])

np.np.arange(10000).reshape(100, 100)
# array([[   0,    1,    2, ...,   97,   98,   99],
#        [ 100,  101,  102, ...,  197,  198,  199],
#        [ 200,  201,  202, ...,  297,  298,  299],
#        ...,
#        [9700, 9701, 9702, ..., 9797, 9798, 9799],
#        [9800, 9801, 9802, ..., 9897, 9898, 9899],
#        [9900, 9901, 9902, ..., 9997, 9998, 9999]])

数が多すぎる場合、1次元の配列でも、reshapeで2次元の配列にしても、...,を使って間の数値を省略して表示されます。

すべての値を表示したいときは、set_printoptionsを使って、表示する最大値を指定します。

np.set_printoptions(threshold=10000)
np.arange(10000)

Numpy Python 数の多い配列の表示

まとめ

arangeで作成した配列をreshapeを使って配列の形を変えたり、たくさんの値を持った配列の表示について学習しましたが、基本的な処理なので、しっかりと覚えておきましょう。

実際にデータを収集したり、加工したりしないとなかなか覚えられないかもしれませんが、数値を替えて配列を作成したり、これまで使ったコードを組み合わせて使ってみるなど、自分で体験することで、自然とコードが身についていきますので、いろいろと試してみてください。

それでは、明日もGood Python!