numpy将字符串数组转换为整数或布尔值(用于屏蔽)

时间:2016-08-24 22:00:38

标签: python arrays string numpy

我是Python的新手,我挑战了将字符串数组转换为数字。 我的数据是从更大的数字和字符串数据集中提取的。它看起来像:

array([b'Single', b'', b'', b'', b'', b'Single', b'Single',
b'', b'Single', ...])

我想使用这些数据创建一个掩码,基本上如果' Single'存在我想要一个False或0,以便我可以屏蔽原始数据集。我不知道为什么那里有b。

我发现类似的问题得到了回答,但没有字符串到数字或字符串到布尔值,只有反向或转换"数字字符串"到整数。

我最接近的解决方案是:

np.where(modMask = 'Single' [False, True])

但后来我收到了错误:

TypeError                  Traceback (most recent call last)

<ipython-input-64-4ad8a8f10b9b> in <module>()
----> 1 np.where(modMask = 'Single' [False, True])

TypeError: string indices must be integers

1 个答案:

答案 0 :(得分:0)

您可以使用numpy.vectorize

import numpy as np

def f(x):
    return not x == b'Single'

vfunc = np.vectorize(f)
x = np.array([b'Single', b'', b'', b'', b'', b'Single'])

result = vfunc(x)

,其中

result = [False  True  True  True  True False]