Numpy通过检查数组索引是否等于字母来创建布尔数组

wd2eg0qa  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(71)

我有一个numpy字母数组'x''y'。我如何为这个做一个布尔数组,如果索引== 'x'返回true,否则返回false?

vmjh9lq9

vmjh9lq91#

In [1]: import numpy as np

In [2]: a = np.array(['x', 'y', 'y', 'x', 'y'])

In [3]: a == 'x'
Out[3]: array([ True, False, False,  True, False], dtype=bool)

字符串

osh3o9ms

osh3o9ms2#

一种更通用的方法,适用于多字母条件:

base_mask = lambda x: x == 'A' or x == 'a' or x == 'T' or x == 't'
vec_base_mask = np.vectorize(base_mask)
seq = 'TCTATcgGGa'
a = np.array([*seq])
masked_a = vec_base_mask(a)

# >>> masked_a
# array([ True, False,  True,  True,  True, False, False, False, False,
#         True])

字符串

相关问题