RuntaScience diary

気象系データを扱う学生 旅が好きです

【NumPy】Python NumPy基礎編(配列:結合)

この記事をシェアする

f:id:RuntaScience:20210101111401p:plain

 

こんにちは

今日はNumPyの基本的な使用方法について話していきたいと思います!

 

NumPyとは、Pythonでの数値計算ライブラリのこと。

tutorials.chainer.org

 

できること

など・・・

 

 Numpyの使い方になれていない方は、まずはこちらの記事をご覧ください。

runtascience.hatenablog.com

 

runtascience.hatenablog.com

 

 

 

 

 ベクトルの結合

まずはベクトルの結合です。以下のベクトルを例とします。

f:id:RuntaScience:20210101104402p:plain

v = np.arange(5)
u = np.arange(0, 6, 2)

 

 np.append()

np.append()を使えば簡単に右側から結合することができます。

f:id:RuntaScience:20210101103441p:plain

np.append(v, u)
>>>array([0, 1, 2, 3, 4, 0, 2, 4])

 

 行列の結合

2次元配列

次に行列の結合です。以下の行列を例とします。

f:id:RuntaScience:20210101104428p:plain

a1 = a
a2 = a.T
print(a1)
print(a2)
>>>[[1 2 3]
   [4 5 6]
   [7 8 9]]
>>>[[1 4 7]
   [2 5 8]
   [3 6 9]]

 

np.append()

 ベクトルと同様に行列にもnp.append()を適用することができます。

しかしながら、結合の際にn×m行列からサイズがn・mのベクトルになります。

np.append(a1,a2)
>>>array([1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 4, 7, 2, 5, 8, 3, 6, 9])

 

np.vstack()

vstack()は行列を縦方向に結合することができます。

f:id:RuntaScience:20210101103127p:plain

np.vstack((a1,a2))
>>>array([[1, 2, 3],
         [4, 5, 6],
         [7, 8, 9],
         [1, 4, 7],
         [2, 5, 8],
         [3, 6, 9]])

 

 

 np.hstack()

np.hstackは行列を横方向に結合することができます。

f:id:RuntaScience:20210101103142p:plain

np.hstack((a1,a2))
>>>
array([[1, 2, 3, 1, 4, 7],
       [4, 5, 6, 2, 5, 8],
       [7, 8, 9, 3, 6, 9]])

 

3次元配列

最後に3次元配列です。

例えば、地球惑星科学科では全球のモデルや観測データで多次元の配列を多く活用します

今回は例として、以下のように行列を作成しました。

f:id:RuntaScience:20210101115223p:plain



b1 = np.arange(3*3*3).reshape(3,3,3)
b1
>>>array([[[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8]],

          [[ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17]],

          [[18, 19, 20],
           [21, 22, 23],
           [24, 25, 26]]])

 

np.vstack()

np.vstack()のvはverticallyを意味します。したがって、例に従うと時間軸方向に結合ができます。

f:id:RuntaScience:20210101115323p:plain

 

np.vstack((b1,b1))
>>>array([[[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8]],

          [[ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17]],

          [[18, 19, 20],
           [21, 22, 23],
           [24, 25, 26]],

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

          [[ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17]],

          [[18, 19, 20],
           [21, 22, 23],
           [24, 25, 26]]])

 

 

np.hstack()

np.vstack()のhはhorizontallyを意味します。したがって、例に従うと水平軸方向に結合ができます。

f:id:RuntaScience:20210101115310p:plain

np.hstack((b1,b1))
>>>array([[[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8],
           [ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8]],

          [[ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17],
           [ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17]],

          [[18, 19, 20],
           [21, 22, 23],
           [24, 25, 26],
           [18, 19, 20],
           [21, 22, 23],
           [24, 25, 26]]])

それでは🌏

 

最終更新日

2021/1/1

 

 

runtascience.hatenablog.com

 

 

runtascience.hatenablog.com

 

 

プライバシーポリシー
お問い合わせ