翻转二维 numpy 数组行中的两个值
flip two values in rows of 2d numpy array
我编写了以下代码来翻转二维 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
如果每一行的点都相同,你可以使用像
这样的代码
tmp = offg[:,p1].copy()
offg[:,p1] = offg[:,p2]
offg[:,p2] = tmp
您可以使用高级索引:
offg[:,[p1, p2]] = offg[:,[p2, p1]]
我编写了以下代码来翻转二维 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
如果每一行的点都相同,你可以使用像
这样的代码tmp = offg[:,p1].copy()
offg[:,p1] = offg[:,p2]
offg[:,p2] = tmp
您可以使用高级索引:
offg[:,[p1, p2]] = offg[:,[p2, p1]]