Python NumPyの基本
NumPyの使い方を忘れたときのメモ。
モジュール類のインポート
In [1]:
#モジュール
import numpy as np
#小数点第3位まで表示
%precision 3
# バージョン
print("実行環境")
!python -V
print('numpy ' + np.__version__)
# デフォルトだと70文字くらいで改行されてしまうので設定変更
np.set_printoptions(linewidth=10000)
実行環境
Python 3.8.5
numpy 1.19.2
配列生成の基本
基本の配列 array
In [2]:
np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Out[2]:
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
ステップ数を指定した配列 arange
In [3]:
np.arange(start=0, stop=10, step=2)
Out[3]:
array([0, 2, 4, 6, 8])
分割数を指定した配列 linspace
In [4]:
np.linspace(start=0, stop=100, num=8)
Out[4]:
array([ 0. , 14.286, 28.571, 42.857, 57.143, 71.429, 85.714, 100. ])
基本の多次元配列 array
In [5]:
np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
Out[5]:
array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
ステップ数を指定した多次元配列 mgrid
In [6]:
np.mgrid[0:10:2, 0:9:3] #{x=start:stop:step, y=start:stop:step, ...}
Out[6]:
array([[[0, 0, 0],
[2, 2, 2],
[4, 4, 4],
[6, 6, 6],
[8, 8, 8]],
[[0, 3, 6],
[0, 3, 6],
[0, 3, 6],
[0, 3, 6],
[0, 3, 6]]])
すべての要素が0の配列 zeros
In [7]:
np.zeros(4)
Out[7]:
array([0., 0., 0., 0.])
すべての要素が1の配列 ones
In [8]:
np.ones(7)
Out[8]:
array([1., 1., 1., 1., 1., 1., 1.])
乱数配列の生成
In [9]:
# 設定は必須ではないが、次回実行時も同じ乱数を生成するための設定
np.random.seed(0)
一様分布 random.rand
In [10]:
np.random.rand(10) # 0.0以上、1.0未満の乱数
Out[10]:
array([0.549, 0.715, 0.603, 0.545, 0.424, 0.646, 0.438, 0.892, 0.964, 0.383])
一様分布 多次元 rnadom.rand
In [11]:
np.random.rand(2,3,4)
Out[11]:
array([[[0.792, 0.529, 0.568, 0.926],
[0.071, 0.087, 0.02 , 0.833],
[0.778, 0.87 , 0.979, 0.799]],
[[0.461, 0.781, 0.118, 0.64 ],
[0.143, 0.945, 0.522, 0.415],
[0.265, 0.774, 0.456, 0.568]]])
範囲を指定した一様分布の乱数 random.randint
In [12]:
np.random.randint(low=0, high=10, size=10)
Out[12]:
array([0, 4, 5, 5, 6, 8, 4, 1, 4, 9])
正規分布 random.randn
In [13]:
np.random.randn(10) # 平均0, 標準偏差1
Out[13]:
array([ 2.162, -0.957, 0.067, 0.206, -0.457, -1.06 , 0.615, 1.43 , -0.212, -0.08 ])
平均、標準偏差を指定した正規分布
In [14]:
np.random.normal(loc=0.0, scale=1.0, size=10) #loc=平均、scale=標準偏差
Out[14]:
array([ 0.405, 0.119, 1.254, 1.419, -0.744, -2.517, -1.507, 1.149, -1.194, 1.141])
データの型、情報の確認
In [15]:
# 変数設定
data = np.array([0, 1, 2, 3, 4])
次元数
In [16]:
data.ndim
Out[16]:
1
要素数
In [17]:
data.size
Out[17]:
5
データ型
In [18]:
data.dtype
Out[18]:
dtype('int32')
numpy配列の計算
足し算
In [19]:
data + 1
Out[19]:
array([1, 2, 3, 4, 5])
引き算
In [20]:
data - 1
Out[20]:
array([-1, 0, 1, 2, 3])
掛け算
In [21]:
data * 2
Out[21]:
array([0, 2, 4, 6, 8])
累乗
In [22]:
data ** 2
Out[22]:
array([ 0, 1, 4, 9, 16], dtype=int32)
割り算
In [23]:
data / 2
Out[23]:
array([0. , 0.5, 1. , 1.5, 2. ])
余り
In [24]:
data % 2
Out[24]:
array([0, 1, 0, 1, 0], dtype=int32)
配列同士の計算
In [25]:
data + data
Out[25]:
array([0, 2, 4, 6, 8])
この記事が気に入ったらサポートをしてみませんか?