NumpyのインストールとNumpy配列の基本的な使い方【Python】

NumpyのインストールとNumpy配列の基本的な使い方【Python】

教本:第2章の写経が終わりましたので、お次はNumpyのインストールとNumpy配列の基本的な使い方について、紹介していきたいと思います。

nojo

このサイトでは、 教本:Pythonによるあたらしいデータ分析の教科書 に沿った方法で、環境を作成しています。

Python関連の試験合格を目指している方や、はじめてNumpyを使う方等のお役に立てれば幸いです。

目次

Numpyのインストール

Numpyとは:Pythonの拡張モジュールのひとつ。多次元且つ大量のベクトル・行列演算が超得意。

Power Shellの使い方や仮想環境の入り方、JupyterNotebookの起動方法については省略したいと思います。以下の記事にすべて記載していますので、ご参照ください。

pip install numpy

はい、「はじまりはいつもpip….」でインストールです。上記コマンドを実行するとインストールが始まり、あっさり終わると思います。

Numpyのインストール
Numpyのインストール

インストールは以上で終了です。バージョン確認等はNumpyを使いながら行いますので、Jupyter Notebookを起動しておいてください。

Numpyのインポート

import numpy as np

実際にNumpyを使用するときは、上記importコマンドを実行して下さい。特にエラー表示がなければ、インストールは成功しています。

asの後に続く名前は何でもいいのですが、入力負担を減らすためにも短かい方ががおススメです。この例では今後、npという名でNumpyを動作させることを指しています。

ちなみに2行目で現段階ではインストールしていないMatplotlibをimport【import matplotlib】してみた例です。

Numpyのインポート
Numpyのインポート

「そんなモジュール、わしゃ知らん!」と怒られます。Anacondaを使っている人はこんなことないでしょうが、ここでは教本どおりにすすめていますので、面倒ですけど教本に付き合います。

天使ちゃん

何でそんなに教本に忠実なのさ?

nojo

試験に合格する自信が全くないからだよ。1問の取りこぼしが命取りになると思うのよね。だから教本の忠犬になっているんだ。

Numpyバージョン確認方法

下記コマンドでバージョン確認ができます。__は、アンダスコアを2回連続で入力します。

print(np.__version__)

上記コマンドの実行結果です。バージョン1.22.1がインストールされていることが確認できます。

Numpyのバージョン確認
Numpyのバージョン確認

Numpy配列の基本的な使い方

①一次元配列を作成:array

a = np.array([1,2,3])
print(a)

*.array()にリスト形式でデータを渡します。上記コードを実行すると、結果は以下のようになります。

array:一次元配列の作成
array:一次元配列の作成

②二次元配列を作成:array

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

一次元配列と同じく、 *.array() を使いますが、リストが2つになりますので、外枠の[]が必要になります。ここら辺の感覚ってどんな種類のコードであれ、何度か実行して身につくものかなと思っています。

最初はコマンドをコピペして実行>次にわざと[]を書き忘れて実行してみる>怒られる>うるさいなって思う>覚える

みたいな感じでワタシはやっております。ちなみに 上記コード の実行結果です。

array:二次元配列の作成
array:二次元配列の作成

③配列を末尾に追加:append

tsuika = np.array([1,2,3])
tsuika = np.append(tsuika,[4,5,6,7,8,9,10])
print(tsuika)

*.append() を使って、既存配列の末尾に新たな配列を追加します。 上記コード を実行すると、

append:配列を末尾に追加
append:配列を末尾に追加

既存配列:1 2 3の後に、4 5 6 7 8 9 10 が追加されます。

④範囲を指定して配列を作成:arange

hani = np.arange(5)
print(hani)

*.arange()を使って、範囲を指定した配列を作成します。()内の数値が5であれば、0から4の配列を作成します。以下、 上記コード の実行結果です。

arange:範囲指定して配列を作成
arange:範囲指定して配列を作成

もうひとつ、()内の数値に始まり、終わり、間隔を指定することもできます。

# np.arrage(始まり、終わり、間隔)
kankaku = np.arange(10,40,5)
print(kannkaku)

こちらがその実行結果です。

arange:始まり、終わり、間隔の指定
arange:始まり、終わり、間隔の指定

10から40までを5間隔で出力しているのが分かると思います。arangeでは終わりの数値(40)は出力されないことを覚えておいてください。その他、小数点も使えますので、いろいろ試して結果を確認すると理解が深まると思います。

⑤規則的な配列を作成:linspace

# 規則的な配列を作成:linspace
# np.linspace(始まり、終わり、個数)
kisoku = np.linspace(0,10,10)

print(kisoku)

*.linspace()を使って、規則的な配列を作成します。()内は、始まり,終わり,個数を指定します。以下、上記コード の実行結果です。

linspace:規則的な配列を作成
linspace:規則的な配列を作成

linspaceでは終わりの数値(10)が出力されることを覚えておいてください。

ちなみにこれ、始まりを1に指定すれば分かりやすい数値:【1 2 3 4 5 6 7 8 9 10】 が表示されますが、0から始めているのでややこしい値になっています。いろんな値を指定しながら動作を確認してみて下さい。

⑥配列の性質を確認:ndim,size,shape,dtype

以下は、配列の性質を表示してくれるコード一覧表です。

項目コード
次元数*.ndim
要素数*.size
何行何列か*.shape
要素の型*.dtype
配列の性質表示:コード一覧

各コードの役割が分かったところで、np.array([[0,1,2],[3,4,5]])の性質を確認していきます。

# 配列の性質を確認:ndim,size,shape,dtype
kakunin = np.array([[0,1,2],[3,4,5]]) 

print("次元数は",kakunin.ndim) # 次元数:ndim
print("要素数は",kakunin.size) # 要素数:size
print("何行何列?",kakunin.shape) # 何行何列?:shape
print("要素の型は?",kakunin.dtype) # 要素の型:dtype

こちらが実行結果です。

ndim,size,shape,dtype:配列の性質を表示
ndim,size,shape,dtype:配列の性質を表示

次元数、要素数、何行何列までは、表示するまでもなく分かりますよね。最後の要素の型ですが、int32整数型となっております。そのうち、int64にも出会うと思いますが、そちらはlong型です。この「」ですが、結構沼にハマるので、おいおい理解するのスタンスでいいと思います。

⑦配列の形を変える:reshape,ravel

*.reshape(2,3) は、1行6列から、2行3列の配列に変形してくれます。()の数値は元の要素数が割り切れる数値にする必要があります。※この例でいうと、reshape(2,4)はエラーになります。

# 配列の形を変える:reshape
dd = np.array([1,2,3,4,5,6]) 
print("1行6列だよ",dd)

ee = dd.reshape(2,3)
print("2行3列になったよ",ee)

はい、実行結果です。行列変形も楽ですね。

reshape(2,3):行列変換
reshape(2,3):行列変形

そしてもうひとつの*.ravel()は、二次元配列から一次元配列に変形してくれます。

# 配列の形を変える:ravel
print("2次元配列",ee)

ichijigen = ee.ravel()
print("ravelで一次元に戻った",ichijigen)

こちらも実行してみましょう。一次元配列に変更できました。

ravel:二次元⇒一次元配列へ
ravel:二次元⇒一次元配列へ

以上、NumpyのインストールとNumpy配列の基礎でした。Numpyを制するものは機械学習を制するとかしないとか。お次はPandasあたりですかね。ですがその前に 教本:Pythonによるあたらしいデータ分析の教科書 に忠実なワタシは、第4章Numpyの写経に励みます。

最後まで読んで下さり、ありがとうございました

よかったらシェアしてね!
目次
TOP
目次
閉じる