どうも、ちょげ(@chogetarou)です。
配列(Array)の特定の値の要素を削除する方法を紹介します。
方法

リスト(List)とArray.array
リストもしくはArray.arrayの特定の値の要素を削除するには、remove()メソッドを使います。
まず、リストもしくはArray.arrayからremove()メソッドを呼び出します。
そして、remove()メソッドの引数に値を指定します。
array.remove(value)
remove()メソッドは、呼び出したリストもしくはArray.arrayの引数の値の要素を削除します。
使用例
numbers = [1, 2, 3, 4, 5]
numbers.remove(3)
numbers.remove(5)
print(numbers) #[1, 2, 4]
numpy配列
Numpy配列の特定の値の要素を削除する方法は、2つあります。
[]
1つは、[]を使う方法です。
まず、Numpy配列名の後に[]を記述し、[]内に「配列名 != 値」を指定します。
そして、Numpy配列名[配列名 != 値]の結果を、配列自身に代入します。
array = array[array != value] #arrayからvalueを削除
上記のコードは、Numpy配列から「!=」の右の値の要素を全て削除します。
使用例
import numpy as np
numbers = np.array([1, 2, 3, 4, 5, 3, 1, 5])
numbers = numbers[numbers != 3]
print(numbers) #[1 2 4 5 1 5]
numpy.delete()
もう1つは、numpyのdelete()を使う方法です。
まず、numpyからdelete()を呼び出し、deleteの戻り値を配列自身に代入します。
where()の第1引数に配列、第2引数にnumpyのargwhere()を指定します。
そして、argwhere()の引数に「配列名 == 値」を指定します。
array = np.delete(array, np.argwhere(array == value))
使用例
import numpy as np
nums = np.array([[1, 2, -100],
[4, -1000, 6],
[7, 8, -10]])
numbers = np.array([1, 2, 3, 4, 5, 3, 1, 5])
numbers = np.delete(numbers, np.argwhere(numbers == 3))
print(numbers) #[1 2 4 5 1 5]
まとめ
リストとArray.arrayの特定の値の要素を削除するには、remove()メソッドを使います。
Numpy配列の特定の値の要素を削除するには、次の2つの方法のいずれかを使います。
- []を使う方法
- numpy.delete()を使う方法
コメント