【问题标题】:flip two values in rows of 2d numpy array翻转二维 numpy 数组行中的两个值
【发布时间】:2020-10-21 03:11:15
【问题描述】:

我编写了以下代码来翻转二维 numpy 数组行中的两个值。但是,我想知道是否有更好的方法来做到这一点。提前致谢

def mtn(offg):
    for row in range(offg.shape[0]):
        point1 = random.randint(0, 139)
        point2 = random.randint(0, 139)
        temp = offg[row, point1]
        offg[row, point1] = offg[row, point2]
        offg[row, point2] = temp
    return offg

【问题讨论】:

    标签: python numpy 2d flip


    【解决方案1】:

    您可以使用高级索引:

    offg[:,[p1, p2]] = offg[:,[p2, p1]]
    

    【讨论】:

      【解决方案2】:

      如果每一行的点都相同,你可以使用类似的代码

      tmp = offg[:,p1].copy()
      offg[:,p1] = offg[:,p2]
      offg[:,p2] = tmp
      

      【讨论】:

      • 谢谢,可惜他们不一样
      • 所以我看不出你的方式有什么问题
      • 是的,但我正在寻找更高级的方法来做到这一点,就像上面 tstanisl 指示的高级索引
      猜你喜欢
      • 2020-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多