俺言語。

自分にしか理解できない言語で書かれた備忘録

【Python】複数のndarray行列からよく使うm×n配列のndarrayを作成する(縦軸:時系列データ, 横軸:データ種類)

時系列データと時間を格納した行列があるとして
それから1つの配列を作成する方法
f:id:hukkuramamemoti:20181227122538p:plain

# データ準備
Time = np.array([0, 1, 2, 3....])
a = np.array([0, 1.1, 2.5, 3....])
b = np.array([0.5068, 0.840, 0.4075, 0.8574....])

# m×nの配列作成
matrix = np.concatenate((time.reshape(len(time), 1),
                                         a.reshape(len(a), 1),
                                         b.reshape(len(b), 1)),
                                         axis=1)

>>array([[ 0.    ,  0.    ,  0.5068],
       [ 1.    ,  1.1   ,  0.84  ],
       [ 2.    ,  2.5   ,  0.4075],
       [ 3.    ,  3.    ,  0.8574]])

ポイントは

  • reshapeを使ってn×1配列に変換すること(n×1配列とn行列はnumpyでは振る舞いが異なるので注意)と
  • concatenateでaxis=1にすること。
  • concatenateのデータはタプルでまとめること(カッコを忘れずに)