[Python]Numpy配列(Array)の特定の値の要素を削除するには?

python

どうも、ちょげ(@chogetarou)です。

Numpy配列(Array)の特定の値の要素を削除する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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))

argwhere()は、numpyのwhere()で代用できます。

使用例

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]

まとめ

Numpy配列の特定の値の要素を削除する方法は、次の2つです。

  • []を使う方法
  • numpy.delete()を使う方法

コメント

タイトルとURLをコピーしました