【问题标题】:Map one numpy array on to another on condition根据条件将一个 numpy 数组映射到另一个数组
【发布时间】:2014-05-01 17:55:15
【问题描述】:

我有三个数组,正在寻找最终输出:

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 更改为 2

【问题讨论】:

    标签: python arrays numpy map


    【解决方案1】:

    使用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')
    

    【讨论】:

    • @Merlin:创建一个新数组。
    • @Merlin:就地替换什么?你在那里有三个数组。你要修改哪一个?
    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 2019-10-17
    • 2021-01-29
    • 2015-07-14
    • 2017-05-26
    • 2021-08-30
    • 1970-01-01
    • 2018-08-14
    相关资源
    最近更新 更多