1
我有6列的二維陣列numpy的:什麼是一個有效的方式來訂購一列的numpy數組塊?
x1 y1 z1 x2 y2 z2
我想通過比較Y1和Y2進行排序(XI,苡仁,ZI)列對。 如果y2> y1,我想交換,以便在該行中,順序是x2,y2,z2,x1,y1,z1。
在numpy中這樣做的有效方法是什麼?
我有6列的二維陣列numpy的:什麼是一個有效的方式來訂購一列的numpy數組塊?
x1 y1 z1 x2 y2 z2
我想通過比較Y1和Y2進行排序(XI,苡仁,ZI)列對。 如果y2> y1,我想交換,以便在該行中,順序是x2,y2,z2,x1,y1,z1。
在numpy中這樣做的有效方法是什麼?
鑑於您的陣列a
與形狀(n, 6)
。下面的代碼就可以了:
c = a[:, 4] > a[:, 1]
a[c, 0:3], a[c, 3:6] = a[c, 3:6], a[c, 0:3]
布爾陣列c
是指示其中的條件是y2 > y1
True
的掩模。第二行應用掩碼來交換此條件適用的行的列。