スタジオおふとん

プログラミング系

Numpyのメモ~適宜更新・間違いあるかも~

ブロードキャスト

サイズの異なる配列同士の計算のこと。
例として、配列とスカラーの話がよく取り上げられるが、実際のサンプルでは配列同士の計算で使用されることが多いので混乱しやすい。
以下のような感じ

x3 = np.array([[1,2], [3,4], [5,6]]) + np.array([10,11])
print(x3)
#結果
[[11 13]
 [13 15]
 [15 17]]

上記のように、3x2の行列に対して、1x2の行列を足しても3行分補完して足してくれる。

random

randn(n, M) # 標準正規分で n x N の行列を作る

結合

contactenateを使用する。
行に結合するときはaxis = 0, 列に結合するときはaxis = 1
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.concatenate.html

y1 = np.array([[0,1],[2,3]])
y2 = np.array([[4,5]])
y3 = np.array([[6],[7]])
y1_2 = np.concatenate((y1, y2), axis = 0)
y1_3 = np.concatenate((y1, y3), axis = 1)
print(y1_2)
print("-----")
print(y1_3)
#結果
[[0 1]
 [2 3]
 [4 5]]
-----
[[0 1 6]
 [2 3 7]]