[Python]配列の偶数の数値を削除するには?

python

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

配列(array)から偶数の数値を削除する方法を紹介します。

スポンサーリンク

リストの場合

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

リスト(List)から偶数の数値を削除する方法は、3つあります。

for文 + remove()

1つ目は、for文とremove()を使う方法です。

まず、リスト(List)をforループします。

forループの処理でif文を呼び出し、要素を2で割った余りが0かどうか判定します。

要素を2で割った余りが0である場合、引数に要素を指定したremove()を呼び出します。

#ls=対象のリスト
for i in ls:
    if i % 2 ==0:
        ls.remove(i)

上記のforループは、リストの偶数の数値を削除します。

使用例

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for i in nums:
    if i % 2 ==0:
        nums.remove(i)
        
print(nums)
出力:
[1, 3, 5, 7, 9]

filter()

2つ目は、filter()を使う方法です。

まず、list()を呼び出し、list()の引数でfilter()を呼び出します。

filter()の第1引数に1つの引数を持つ関数、第2引数に対象のリストを指定します。

そして、関数で「引数 % 2 != 0」を返します。

#ls=対象のリスト
result = list(filter(lambda x: x % 2 != 0, ls))

上記のlist()は、リスト(List)の偶数の数値を削除した結果を返します。

使用例

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = list(filter(lambda x: x % 2 != 0, nums))
        
print(result)
出力:
[1, 3, 5, 7, 9]

内包表記

3つ目は、内包表記を使う方法です。

まず、内包表記でリストをforループし、ループ変数を返します。

次に、if文で条件分岐します。

条件分岐の条件に、「ループ変数 % 2 != 0」を指定します。

#ls=対象のリスト
result = [x for x in ls if x % 2 != 0]

上記の内包表記は、リスト(List)から偶数の数値を削除した結果を返します。

使用例

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

result = [x for x in nums if x % 2 != 0]
        
print(result)
出力:
[1, 3, 5, 7, 9]
スポンサーリンク

Numpy配列の場合

Numpy配列(ndarray)の偶数の数値を削除するには、[]と条件式を使います。

まず、Numpy配列名と[]を記述します。

そして、[]内に「Numpy配列 % 2 != 0」を指定します。

#arr=対象のNumpy配列
result = arr[arr % 2 != 0]

上記の「arr[arr % 2 != 0]」は、Numpy配列(ndarray)の偶数の数値を削除した結果を返します。

使用例

import numpy as np

nums = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

result = nums[nums % 2 != 0]

print(result)
出力:
[1 3 5 7 9]
スポンサーリンク

まとめ

リスト(List)から偶数の数値を削除する方法は、次の3つです。

  • for文とremove()を使う方法
  • filter()を使う方法
    result = list(filter(lambda x: x % 2 != 0, ls))
  • 内包表記を使う方法
    result = [x for x in ls if x % 2 != 0]

Numpy配列(ndarray)から偶数の数値を削除するには、[]と条件式を使います。

#arr=対象のNumpy配列
result = arr[arr % 2 != 0]

コメント

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