【问题标题】:Numpy Advanced Indexing : How the broadcast is happening?Numpy 高级索引:广播是如何发生的?
【发布时间】:2020-10-11 09:18:56
【问题描述】:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

如果我们运行以下语句

x[1:, [2,0,1]]

我们得到以下结果

array([[ 6,  4,  5],
      [10,  8,  9]])

根据numpy的文档:

高级索引总是广播并作为一个迭代:

我无法理解索引配对是如何在这里发生的以及如何广播的。

【问题讨论】:

    标签: numpy indexing numpy-ndarray array-broadcasting numpy-slicing


    【解决方案1】:

    来自 NumPy 用户指南,Section 3.4.7 Combining index arrays with slices

    切片被转换为广播的索引数组 np.array 用索引数组生成结果数组。

    在我们的例子中,切片 1: 被转换为具有 形状 ( 1,2) 。这是行索引数组。 下一个索引数组 (column index array) np.array([2,0,1]) 具有 shape (3,2)

    • 行索引数组形状 (1,2)
    • 列索引数组形状 (3,2)

    索引数组的形状不同。但它们可以广播成相同的形状。广播行索引数组以匹配列索引数组的形状。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2017-03-18
      • 1970-01-01
      • 2020-01-25
      • 2017-12-28
      • 1970-01-01
      相关资源
      最近更新 更多