Python:在python bool和numpy bool_之间进行转换的正确方法是什么?

时间:2017-11-11 16:16:58

标签: numpy boolean

当我发现我可能有“错误的”布尔人时,我的胡子ndarray一直没有被大熊猫结构作为面具接受,我一直在犯错误。 编辑:它不是原始的numpy数组,而是pandas.Index。

虽然我能够找到解决方案,但唯一有效的解决方案却非常难看:

mymask = mymask.astype(np.bool_) #ver.1 does not work, elements remain <class 'bool'>
mymask = mymask==True #ver.2, does work, elements become <class 'numpy.bool_'>
mypdstructure[mymask] 

对值进行类型转换的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题。我的原帖不完全正确:我的面具是pandas.Index。

pands.Index.astype似乎出乎意料地(对我而言),因为我得到以下不同的行为:

mask = pindex.map(myfun).astype(np.bool_) # doesn't cast
mask = pindex.map(myfun).astype(np.bool_,copy=False) # doesn't cast
mask = pindex.map(myfun).values.astype(np.bool_) # does cast

也许它实际上是一只熊猫虫?这个结果让我感到惊讶,因为我的印象是pandas通常只是调用它所基于的numpy数组的函数。这显然不是这种情况。