使用 Numpy 过滤数组字符串

时间:2021-04-28 18:27:59

标签: python arrays numpy filter

我怎么能写一个 numpy 函数,它只过滤掉以“USD”结尾的数组字符串。如果没有 for 循环,我将如何执行此过滤器。

import numpy as np
Array= ['BTCUSD', 'ETHUSD', 'David', 'georGe', 'XRPUSD', 'USDAUD', 'ETHUSDC' ]

预期输出

['BTCUSD', 'ETHUSD',  'XRPUSD']

1 个答案:

答案 0 :(得分:1)

使用 numpy char.endswith

import numpy as np

a = np.array(['BTCUSD', 'ETHUSD', 'David', 'georGe', 'XRPUSD', 'USDAUD', 'ETHUSDC'])
print(a[np.char.endswith(a, 'USD')])

输出:

['BTCUSD' 'ETHUSD' 'XRPUSD']

对于 list 而不是 np.ndarray 的返回类型,可以使用推导式:

import numpy as np

lst = np.array(['BTCUSD', 'ETHUSD', 'David', 'georGe', 'XRPUSD', 'USDAUD', 'ETHUSDC'])
print([elem for elem in lst if elem.endswith('USD')])

输出:

['BTCUSD', 'ETHUSD', 'XRPUSD']

*推导式方法可用于 Python 列表和 np 数组。