Tôi đang tìm một giải pháp một dòng có thể giúp tôi thực hiện những việc sau.Numpy: Sắp xếp lại mảng dựa trên mảng chỉ mục
Giả sử tôi có
array = np.array([10, 20, 30, 40, 50])
Tôi muốn sắp xếp lại nó dựa trên một trật tự đầu vào. Nếu có một chức năng NumPy gọi arrange
, nó sẽ làm như sau:
newarray = np.arrange(array, [1, 0, 3, 4, 2])
print newarray
[20, 10, 40, 50, 30]
Chính thức, nếu mảng được sắp xếp lại là mxn, và "chỉ số" mảng là 1 xn, thứ tự sẽ được xác định bởi mảng được gọi là "chỉ mục".
Numpy có chức năng như thế này không?
Cảm ơn! Nếu "chỉ số" là mảng 2d thì sao? Ví dụ tôi muốn biến '[[1,2], [" a "," b "]' thành '[[2,1], [" a "," b "]]' bằng cách sử dụng chỉ mục '[ [1,0], [0,1]] '. Tôi biết một cách xấu xí để làm là sử dụng for-loop để sắp xếp lại mỗi hàng của mảng bằng cách sử dụng hàng tương ứng của mảng chỉ mục. Nhưng phải có một cách nhanh hơn. – Skywalker326