Cho một mảng 'a' Tôi muốn sắp xếp mảng theo cột "sắp xếp (a, trục = 0)" làm một số nội dung cho mảng và sau đó hoàn tác sắp xếp. Bằng cách đó tôi không có nghĩa là sắp xếp lại nhưng về cơ bản đảo ngược như thế nào mỗi yếu tố đã được di chuyển. Tôi giả sử argsort() là những gì tôi cần nhưng không rõ ràng với tôi cách sắp xếp một mảng với kết quả của argsort() hoặc quan trọng hơn là áp dụng đảo ngược/nghịch đảo của argsort()undo hoặc reverse argsort(), python
Dưới đây là chi tiết hơn một chút
tôi có một mảng một, hình dạng (a) = rXc tôi cần phải sắp xếp mỗi cột
aargsort = a.argsort(axis=0) # May use this later
aSort = a.sort(axis=0)
nay trung bình mỗi hàng
aSortRM = asort.mean(axis=1)
nay thay thế mỗi col trong một hàng với hàng tôi một. có cách nào tốt hơn so với số này
aWithMeans = ones_like(a)
for ind in range(r) # r = number of rows
aWithMeans[ind]* aSortRM[ind]
Bây giờ tôi cần hoàn tác sắp xếp mà tôi đã thực hiện trong bước đầu tiên. ????
Tại sao bạn không thể tạo bản sao của mảng: 'a.copy()' trước bất kỳ phép biến đổi nào hoặc sử dụng 'aSort = numpy .sort (axis = 0) '(sẽ trả về bản sao đã sắp xếp)? btw, 'a.sort()' trả về không có gì do đó không có điểm để gán giá trị trả về của nó. – jfs
@ J.F. Sebastian, Cảm ơn bạn là đúng Tôi cố định nó – Vincent