LoginSignup
1
1

More than 3 years have passed since last update.

Python3 | numpy入門

Last updated at Posted at 2020-12-15

開発環境:Jupyter Notebook

まずは、読み込み。

import numpy as np

「numpyというライブラリをnpとして読み込む」という意味となる。これを宣言することで、メソッドをnpとして参照することができる。

配列

qiita_header.png

1次元配列

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

print(a)
#array([0, 1, 2])

a[2]
#2

np.arrayで配列を作成する。1次元配列の場合、array([ ])で作成することができる。a[ ] で任意の値を呼び出すことができる。

2次元配列

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

print(a)
#array([[0, 1, 2],
#       [3, 4, 5]])

a[0]
#array([0, 1, 2])
a[1]
#array([3, 4, 5])

a[0][0]
#0
a[1][2]
#5

2次元配列の場合、array([ ], [ ])で作成することができる。ここで、a[ ] とすると、行ごとの値を呼び出す。a[ ][ ]では、行と列を指定して、1つの値を取り出すことができる。

配列の操作

qiita_header (1).png

shape, ndim, dtype, size

a.shape
#(2, 3)
a.ndim
#2
a.dtype
#'int64'
a.size
#6

a.shapeで行と列の数を取り出すことができる。a.ndimは次元数を表している。今回の場合、2次元行列のため、2が取り出される。a.dtypeはビット数を表している。今回は、2×3の行列なので、1つの値を2ビットとすると、2の6乗でint64と求められる。a.sizeは2×3の行列より、6と表示される。

arange, linspace

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

np.arange(0, 20, 5)
#array([0, 5, 10, 15])

np.linspace(0, 20, 5)
#array([0., 5., 10., 15., 20.])

np.arangeは等差で配列を作ることができる。上の例では、単に6と書くと、0から6つの要素を取り出すことができる。または、0から始まり、20未満まで、5ずつ増える配列として表されている。np.linspaceは等分して配列を作ることができる。上の例では、0から始まり、20まで、5等分して配列を作成している。

zeros, ones

np.zeros((2, 3))
#array([[0., 0., 0.],
#       [0., 0., 0.]])

np.ones((2, 3))
#array([[1., 1., 1.],
#       [1., 1., 1.]])

np.zerosは0を要素とする配列を作成することができる。同様に、np.onesは1を要素とする。

append, vstack, hstack

a = np.arange(5)
b = np.arange(0, 10, 2)
c = np.arange(0, 100, 20)

a
#array([0, 1, 2, 3, 4])
b
#array([0, 2, 4, 6, 8])
c
#array([0, 20, 40, 60, 80])

np.append(a, b)
#array([0, 1, 2, 3, 4, 0, 2, 4, 6, 8])

np.vstack([a, b, c])
#array([[0,  1,  2,  3,  4],
#       [0,  2,  4,  6,  8],
#       [0, 20, 40, 60, 80]])

np.hstack([a, b, c])
#array([0,  1,  2,  3,  4,  0,  2,  4,  6,  8,  0, 20, 40, 60, 80])

np.appendは配列の値を後に続けて加えることができる。np.vstackは配列を行ごとに、つまり、鉛直(vertical)に並べる事ができる。加えて、np.hstackは配列を水平(horizontal)に並べることができる。

random, sum, min, max, mean

a = np.random.rand((2, 3))

a
#array([[0.3026967 , 0.7533224 , 0.26057491],
#       [0.91502592, 0.54166851, 0.60867887]])

a.sum()
# 3.381967315194162

a.min()
# 0.26057491207931693

a.max()
# 0.9150259161906477

a.mean()
# 0.563661219199027

np.random.randは0以上1未満の数をランダムに記述することができる。a.sumですべての値の合計、a.minで配列の最小値、a.maxで配列の最大値、a.meanで配列の平均値を表す。

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1