was*_*tor 5 python arrays numpy
我想翻转数组中数组的第一个和第二个值。一个简单的解决方案是遍历数组。这样做的正确方法是什么?
import numpy as np
contour = np.array([[1, 4],
[3, 2]])
flipped_contour = np.empty((0,2))
for point in contour:
x_y_fipped = np.array([point[1], point[0]])
flipped_contour = np.vstack((flipped_contour, x_y_fipped))
print(flipped_contour)
[[4. 1.]
[2. 3.]]
Run Code Online (Sandbox Code Playgroud)
使用恰当的命名np.flip:
np.flip(contour, axis=1)
Run Code Online (Sandbox Code Playgroud)
或者,
np.fliplr(contour)
Run Code Online (Sandbox Code Playgroud)
array([[4, 1],
[2, 3]])
Run Code Online (Sandbox Code Playgroud)
除了COLDSPEED 的回答,如果我们只想交换第一列和第二列,而不是翻转整个数组:
contour[:, :2] = contour[:, 1::-1]
Run Code Online (Sandbox Code Playgroud)
这contour[:, 1::-1]是由数组的前两列contour以相反顺序形成的数组。然后将其分配给前两列 ( contour[:, :2])。现在交换前两列。
通常,要交换i第jth 列和第 th 列,请执行以下操作:
contour[:, [i, j]] = contour[:, [j, i]]
Run Code Online (Sandbox Code Playgroud)