numpy.delete()
numpy.delete() を使って配列の 行や列を削除する ことができます。
numpy.delete(arr, object, axis=None)
行を削除する場合は axis=0 を指定します。
# NUMPY_DELETE_01-1
import numpy as np
#配列xを定義
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 配列xの2行目を削除
y = np.delete(x, 1, axis=0)
print(y)
[[1 2 3] [7 8 9]]
列を削除する場合は axis に 1 を渡します。
# NUMPY_DELETE_01-2
# 配列xの3列目を削除
z = np.delete(x, 2, axis=1)
print(z)
[[1 2] [4 5] [7 8]]
obj にリストやタプルなどのイテラブルを渡して、複数の行や列をまとめて削除することもできます。
# NUMPY_DELETE_02
import numpy as np
#配列xを定義
x = np.array([[1, 1, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3],
[4, 4, 4, 4]])
# 配列xの1行目と3行目を削除
y = np.delete(x, [0, 2], axis = 0)
print(y)
[[2 2 2 2] [4 4 4 4]]
第 3 引数 axis を省略すると、対象配列は 1 次元配列に変更され、第 2 引数 obj で指定したインデックスの要素を削除します。
# NUMPY_DELETE_03
import numpy as np
#配列xを定義
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# 配列xを1次元配列に変更して4番目の要素を削除
y = np.delete(x, 3)
print(y)
[1 2 3 5 6 7 8 9]
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング 新品価格 | ![]() |

マスク操作による行・列の削除
マスク操作を使って特定の行や列を削除することもできます。
# NUMPY_DELETE_04
import numpy as np
#配列xを定義
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# ブール配列[True True True]
mask = np.ones(len(x), dtype=bool)
# maskの2番目のTrueをFalseに変更
mask[1] = False
# xの2行目を削除
x2 = x[mask]
print(x2)
[[1 2 3] [7 8 9]]
コメントを書く