【问题标题】:Choose elements from two numpy arrays at random从两个numpy数组中随机选择元素
【发布时间】:2016-02-06 00:25:17
【问题描述】:

我正在尝试通过从每个数组中随机选择元素来将两个 numpy 数组合并在一起。 假设我有两个长度相等的数组xy,如下所示:

x = np.arange(10)
y = np.arange(10, 20)

还有一个面具r

r = np.random.choice([True, False], 10)

那么有什么方法可以从x 中选择元素,其中rTrue,从y 中选择元素,其中rFalse

我不必使用掩码方法,但我需要一些快速的东西,因为 xy 实际上会比 10 长得多,所以理想情况下不涉及循环。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    这个怎么样?

    z = y.copy()
    z[r] = x[r]
    

    【讨论】:

      【解决方案2】:

      这是使用np.wherenp.where(<condition>, <where_true>, <where_false>) 语法的单行代码:

      z = np.where(r, x, y)
      

      【讨论】:

        猜你喜欢
        • 2014-05-15
        • 2021-12-14
        • 2014-07-23
        • 1970-01-01
        • 2017-09-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多