我有三个数组,寻找最终输出:
a = (array(['Call', 'Call', 'Call', 'Call', 'NoCall', 'Call', 'NoCall', 'Call']))
b = (array(['1', '1', '1', '1', '1', '1', '1', '1']))
c = (array(['2', '2', '2', '2', '2', '2', '2', '2']))
output = (array(['1', '1', '1', '1', '2', '1', '2', '1']))
我试过"for"
循环,它没有替换值。这些是numpy(长)数组。我在考虑使用itertools或numpy.map?如果a ="NoCall"
中的元素,则将b中的值从1更改为
答案 0 :(得分:4)
使用np.where
:
>>> np.where(a=='Call', b, c)
array([u'1', u'1', u'1', u'1', u'2', u'1', u'2', u'1'],
dtype='<U1')