はじめてのNumpy 1.アレイの作成と要素へアクセス

f:id:wataru_boss:20180618221314p:plain

こんにちは。BOSSです。

何度となくNumpy扱っているのですが、基本的な部分をしっかり勉強したい。

というわけで勉強した内容について少しずつまとめていこうと思います。

タイトルははじめてのNumpyということで

何回構成になるかは全然見えません。

まぁ気長にやっていきましょう。

Numpyとは

NumpyはPythonの数値計算を効率的に行うためのモジュールになります。

Numpyの特徴としては

  • 多次元配列を容易に扱える

  • 線形代数やフーリエ変換などが容易で、各種演算のサポートがついている

といったところでしょうか。

Numpyをインポート

Pythonではモジュールを扱うときはimportしないといけません。

Numpyを使うためにも次のようにimportしましょう。

import numpy as np

このようにnpと名前をつけることが多いかと思います。

アレイの作成

Numpyのアレイ(配列)を生成する方法をみていきます。

アレイを生成するには

np.array()

を用います。 例えばこんな感じ。

arr = np.array([[1, 2, 3, 4, 5],
                [2, 3, 4, 5, 6], 
                [3, 4, 5, 6, 7]])

print(arr)
[[1 2 3 4 5]
 [2 3 4 5 6]
 [3 4 5 6 7]]

任意のアレイを生成することができました。

例えばこれ以外にも0だけのアレイを作ることもできたりします。

print(np.zeros((4,5), dtype = float))
[[0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0.]]

このようにすると

4行5列の0だけのアレイを作成することができました。

また、

np.arrange()

を用いることで指定した範囲の数値で配列を生成可能です。

print(np.arange(20, 30))
print(np.arange(5))
[20 21 22 23 24 25 26 27 28 29]
[0 1 2 3 4]

このように0からの場合は最初の数字を省略することができます。

要素へのアクセス

arr = np.array([[1, 2, 3, 4, 5],
                [2, 3, 4, 5, 6], 
                [3, 4, 5, 6, 7]])

というアレイを用いて要素へのアクセスを見ていきましょう。

やり方は色々あるのですが、まぁどれか使えたら困ることはないんじゃないでしょうか。

パターン1 C言語風

C言語風にアクセスができます。

print(arr[0][2])
3

このように、1次元目と2次元目を分けて記述して要素にアクセスが可能です。

パターン2 index指定

パターン1と全く同じことがindexを指定することで記述できます。

print(arr[0, 2])
3

難しいことはないですね。パターン1とどっち使うかは趣味じゃないでしょうか。

パターン3 複数の要素を指定

タプルを使用して複数の要素を取り出すこともできます。

print(arr[(0, 2, 1), (1, 2, 0)])
[2 5 2]

一つ目の2は0行1列目
二つ目の5は2行2列目
三つ目の2は1行0列目

というのを表しています。ちょっと複雑ですが、こういう要素へのアクセスもできます。

まとめ

さて、はじめてのNumpy1ではアレイの生成および要素へのアクセスの仕方を見てきました。

なんとなーくどういうオブジェクトを扱うのかわかったかなと思います。

次回はもう少し要素へのアクセスを掘り下げた内容がかけるかなと考えています。