Numpy入門【Pythonデータサイエンス】

Python

Numpyとは?

NumpyはPythonで科学計算を行うためのパッケージです。

Numpyの準備

pip install numpy
import numpy as np

リストとNumpyの違い

リストは1つのリスト内に異なるデータ型を含めることができるがNumpyは全て同じでないとならない
メモリの消費量が少なく、高速

配列とは

配列には

  • 次元
  • 軸の長さ

があります
例えば下記の例では型は整数、次元は2、一つ目の軸の長さは2、二つ目の軸の長さは5

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

基本的な配列を作成する方法

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

a = np.zeros(2)
np.ones(2)
np.empty(2) 
np.arange(4)
np.arange(2, 9, 2)
np.ones(2, dtype=np.int64)

要素の追加、削除、およびソート

arr = np.array([2, 1, 5, 3, 7, 4, 6, 8])
np.sort(arr)
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
np.concatenate((a, b))

x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6]])
np.concatenate((x, y), axis=0)

配列の形状とサイズ

array_example = np.array([[[0, 1, 2, 3],
                            [4, 5, 6, 7]],

                           [[0, 1, 2, 3],
                            [4, 5, 6, 7]],

                           [[0 ,1 ,2, 3],
                            [4, 5, 6, 7]]])

array_example.ndim
array_example.size
array_example.shape

配列の形状を変更

a = np.arange(6)
print(a)

b = a.reshape(3, 2)
print(b)

インデックス作成とスライス

data = np.array([1, 2, 3])
data[1]
data[0:2]
data[1:]
data[-2:]
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(a[a < 5])
five_up = (a >= 5)
print(a[five_up])

既存のデータから配列を作成

a1 = np.array([[1, 1],
               [2, 2]])

a2 = np.array([[3, 3],
               [4, 4]])
np.vstack((a1, a2))
np.hstack((a1, a2))

基本的な配列操作

data = np.array([1, 2])
ones = np.ones(2, dtype=int)

data + ones
data - ones
data * data
data / data

ブロードキャスト

data = np.array([1.0, 2.0])
data * 1.6

便利な配列操作

data.max()
data.min()
data.sum()
a.min(axis=0)

行列の作成

data = np.array([[1, 2], [3, 4], [5, 6]])
data.max()
data.min()
data.sum()

data.max(axis=0)
data.max(axis=1)

data = np.array([[1, 2], [3, 4]])
ones = np.array([[1, 1], [1, 1]])
data + ones

data = np.array([[1, 2], [3, 4], [5, 6]])
ones_row = np.array([[1, 1]])
data + ones_row

行列の転置と再形成

data.reshape(2, 3)
data.reshape(3, 2)
arr.transpose()
arr.T

多次元配列の再形成と平坦化

x = np.array([[1 , 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
x.flatten()
タイトルとURLをコピーしました