【问题标题】:Notation of swapping rows on a numpy array in Python在 Python 中交换 numpy 数组上的行的表示法
【发布时间】:2020-12-11 23:45:52
【问题描述】:

假设我们有一个 numpy 数组:

A = np.array([[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9],
          [10, 11, 12]])

    

谁能解释为什么这条线用来交换两行(在这种情况下是第一行和第四行)?

'A[[0, 3]] = A [[3, 0]]'

【问题讨论】:

  • 如果您对符号本身有疑问,A[[3, 0]] 正在访问第 4 行和第 0 行并分配给第 0 和第 4 行
  • 你在问为什么有人会使用这种方法吗?或者为什么它会起作用?
  • 我知道了。我不明白它的工作原理,但我知道。
  • @GeorgePanailidis 如果您从我的回答中概念性地理解它,请接受我的解决方案作为答案(通过单击它旁边的复选标记)。谢谢!

标签: python numpy swap numpy-ndarray notation


【解决方案1】:

您正在同时更新两个子数组的位置

但是,这样做:

A[0] = A[3]
A[3] = A[0]

因为子数组A[0] 已经更新了,所以不能工作,所以你需要同时进行:

A[[0, 3]] = A [[3, 0]]
A
array([[10, 11, 12],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [ 1,  2,  3]])

【讨论】:

    猜你喜欢
    • 2019-06-01
    • 2011-06-18
    • 2012-09-23
    • 2021-10-20
    • 2016-12-17
    • 2021-12-20
    • 2013-02-02
    • 2014-07-19
    相关资源
    最近更新 更多