我想翻转数组中数组的第一个和第二个值。一个简单的解决方案是遍历数组。做这件事的正确方法是什么?
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.]]
6条答案
按热度按时间lpwwtiir1#
使用名称恰当的
np.flip
:或者
tzcvj98z2#
可以使用
numpy
indexing:ztyzrc3y3#
除了COLDSPEED's answer,如果我们只想交换第一列和第二列,而不是翻转整个数组:
这里
contour[:, 1::-1]
是由数组contour
的前两列以相反的顺序形成的数组。然后将其分配给前两列(contour[:, :2]
)。现在交换了前两列。通常,要交换第
i
列和第j
列,请执行以下操作:mtb9vblg4#
以下是两种交换前两列的非就地方式:
或
rkue9o1l5#
okxuctiv6#
另一种方法是使用permutation matrices
输出量: