どうも、ちょげ(@chogetarou)です。
配列(array)から偶数の数値を削除する方法を紹介します。
リストの場合

リスト(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]
コメント