numpy tutorialの一環として、このサイトを参考にしてnumpy.insert, numpy.concatenateの使い方を調べてみる。
スポンサーリンク
numpy.insert¶
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
a
# 軸指定が無い場合行列を平坦化して5を
# インデックス1の2の前に挿入する
np.insert(a, 1, 5)
# 軸指定が無い場合行列を平坦化して7を
# インデックス3の4の前に挿入する
np.insert(a, 3, 7)
# 指定軸1(列)に沿って5を
# インデックス1の前に挿入する
np.insert(a, 1, 5, axis=1)
# 指定軸0(行)に沿って5を
# インデックス1の前に挿入する
np.insert(a, 1, 5, axis=0)
軸0を指定すると行が挿入される。
# インデックス5の6の前に8を
# インデックス6の前、あるいは
# (インデックス5の6の後)に9を挿入する
np.insert(a, [5, 6], [8, 9])
# インデックス2の3の前に5
# インデックス4の4の前に6を挿入する
np.insert(a, slice(2, 4), [5, 6])
# 列のインデックス1の[2,4,6]の前に
# [1,2,3]を挿入する。
np.insert(a, [1], [[1],[2],[3]], axis=1)
# 行のインデックス1の[3,4]の前に
# [1,1],[2,2],[3,3]を挿入する。
np.insert(a, [1], [[1],[2],[3]], axis=0)
# インデックス2の3の前に7を
# インデックス2の3の前にfalse(0)を挿入する
np.insert(a, [2, 2], [7.13, False]) # type casting
# インデックス2の3の前に7を
# インデックス2の3の前にTrue(1)を挿入する
np.insert(a, [2, 2], [7.13, True]) # type casting
a = a.astype(np.float32)
np.insert(a, [2, 2], [7.13, True])
スポンサーリンク
numpy.concatenate¶
numpy.concatenateの説明は以下のように書いてある。
“Join a sequence of arrays along an existing axis.”
既存の軸沿いに一連の配列をくっつける。
# a[1,2],[3,4]とb[5,6]を
# 行でくっつける
a = np.array([[1,2],[3,4]])
b = np.array([[5,6]])
print(a.shape,b.shape)
np.concatenate((a,b),axis=0)
# axisを指定しなくてもいける
np.concatenate((a, b))
np.concatenate((a,b),axis=1)
# axis=1を指定すると上のようなエラーが出る
# bをトランスポーズすることでエラーを解消
print(b.T,b.T.shape)
np.concatenate((a, b.T), axis=1)
# 行列a,bを平坦化してくっつける
np.concatenate((a, b), axis=None)
np.concatenate((a, b)).ravel()
スポンサーリンク
スポンサーリンク