【发布时间】:2013-12-19 02:36:42
【问题描述】:
我已经阅读了大部分 How to convert a boolean array to an int array ,但我仍然不知道如何(最有效地)将 numpy bool 数组转换为 int 数组,但具有不同的值。例如,我有:
>>> k=np.array([True, False, False, True, False])
>>> print k
[ True False False True False]
我希望将其转换为数组,其中 True 表示 2,False 表示 5。
当然,我总是可以建立一个线性方程:
>>> print 5-k*3
[2 5 5 2 5]
...虽然是矢量化的,但不必要地同时使用了加法(减法)和乘法;此外,如果我想要相反的值(True 为 5,False 为 2),我基本上必须使用(并重新计算)不同的方程:
>>> print 2+k*3
[5 2 2 5 2]
... 这对我来说有点可读性问题。
本质上,这只是一个选择/映射操作——但我想在numpy 域中完成。我怎么能这样做?
【问题讨论】: