リスト内の対象要素をマスクで抽出

必要

要件の説明:
2 つのリストがあり、1 つは処理対象のリスト、もう 1 つはマスクです。次に、マスクに従って処理されるリスト内の要素を抽出したいと思います。

コード

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/1/31 17:38
# @Author  : JasonLiu
# @File    : test.py
import numpy as np
import pdb
# function to create masked array
def masking(ar1, ar2):
    # masking the array1 by using array2
    # where array2 mod 7 is true
    # mask = np.ma.masked_where(ar2 % 7, ar1)
    mask = np.ma.masked_where(ar2 != 1, ar1)
    return mask
# main function
if __name__ == '__main__':
    # creating two arrays
    x = np.array([1, 2, 4, 5, 7, 8, 9])
    # y = np.array([10, 12, 14, 5, 7, 0, 13])
    y = np.array([1, 1, 0, 1, 1, 0, 1])
    # calling masking function to get
    # masked array
    masked = masking(x, y)
    print("masked=", masked)
    # getting the values as 1-d array which
    # are non masked
    masked_array = np.ma.compressed(masked)
    # print("masked_array=", masked_array)
    # printing the resultant array after masking
    print(f'Masked Array is:{masked_array}')

操作の結果は次のようになります。

masked= [1 2 -- 5 7 -- 9]
Masked Array is:[1 2 5 7 9]

おすすめ

転載: blog.csdn.net/ljp1919/article/details/130774054