Tôi muốn sửa đổi một ma trận chuyển tiếp hình vuông dày đặc tại chỗ bằng cách thay đổi thứ tự của một số hàng và cột của nó, sử dụng thư viện numpy của python. Về mặt toán học, điều này tương ứng với việc nhân trước ma trận với ma trận hoán vị P và nhân sau với P ^ -1 = P ^ T, nhưng đây không phải là một giải pháp hợp lý về mặt tính toán.
Ngay bây giờ tôi đang trao đổi các hàng và cột theo cách thủ công, nhưng tôi đã mong đợi numpy có một hàm đẹp f (M, v) trong đó M có n hàng và cột và v có n mục, để f (M, v) cập nhật M theo hoán vị chỉ số v. Có lẽ tôi chỉ thất bại trong việc tìm kiếm trên internet.
Một cái gì đó như thế này có thể khả thi với "lập chỉ mục nâng cao" của numpy nhưng sự hiểu biết của tôi là một giải pháp như vậy sẽ không được áp dụng. Ngoài ra đối với một số tình huống đơn giản, có thể chỉ cần theo dõi riêng một hoán vị chỉ số, nhưng điều này không thuận tiện trong trường hợp của tôi.
Đã thêm:
Đôi khi khi mọi người nói về hoán vị, họ chỉ có nghĩa là lấy mẫu các hoán vị ngẫu nhiên, ví dụ như một phần của quy trình để lấy giá trị p trong thống kê. Hoặc họ có nghĩa là đếm hoặc liệt kê tất cả các hoán vị có thể. Tôi không nói về những điều này.
Đã thêm:
Ma trận đủ nhỏ để vừa với RAM máy tính để bàn nhưng đủ lớn để tôi không muốn sao chép nó một cách thiếu suy nghĩ. Trên thực tế tôi muốn sử dụng ma trận càng lớn càng tốt, nhưng tôi không muốn đối phó với sự bất tiện khi không thể giữ chúng trong RAM và tôi thực hiện các thao tác LAPACK O (N ^ 3) trên ma trận cũng sẽ giới hạn kích thước ma trận thực tế. Tôi hiện đang sao chép ma trận lớn này một cách không cần thiết, nhưng tôi hy vọng điều này có thể dễ dàng tránh được cho hoán vị.
M[v]
để hoán vị các hàng.