Python's numpy kitaplığını kullanarak, satırlarının ve sütunlarının birçoğunun sırasını değiştirerek, yoğun bir kare geçiş matrisini yerinde değiştirmek istiyorum. Matematiksel olarak bu, matrisin permütasyon matrisi P ile önceden çarpılması ve P ^ -1 = P ^ T ile çarpılması ve sonradan hesaplanması açısından makul bir çözüm değildir.
Şu anda elle satırları ve sütunları değiştiriyorum, ancak N'nin n satır ya da sütuna sahip olduğu f'nin (M, v) güzel bir işlevi olmasını ve f'nin (M, v) güncellemelerini sağlayacak şekilde n girişleri olmasını beklerdim. Endeks müsaadesine göre v. Belki de sadece internette arama yapmakta başarısız oluyorum.
Bunun gibi bir şey, numpy'nin “gelişmiş indeksleme” si ile mümkün olabilir, fakat benim fikrim, böyle bir çözümün yerinde olmamasıdır. Ayrıca bazı basit durumlar için, bir endeks permütasyonunu sadece ayrı olarak izlemek yeterli olabilir, ancak bu benim durumumda uygun değil.
Eklendi:
Bazen insanlar permütasyonlar hakkında konuştuğunda, örneğin istatistiklerde p-değerleri elde etme prosedürünün bir parçası olarak sadece rastgele permütasyonların örneklenmesi anlamına gelir. Veya tüm olası permütasyonları saymak veya saymak anlamına gelir. Bu şeyler hakkında konuşmuyorum.
Eklendi:
Matris, masaüstü RAM'e sığacak kadar küçük, ancak düşüncesizce kopyalamak istemediğim kadar büyük. Aslında matrisleri mümkün olduğu kadar büyük kullanmak istiyorum, ancak bunları RAM'de tutamamak zorluğuyla uğraşmak istemiyorum ve matris üzerinde O (N ^ 3) LAPACK işlemi yapıyorum. pratik matris boyutunu sınırlayın. Şu anda matrisleri gereksiz yere bu kadar büyük kopyalıyorum, ancak bunun permütasyon için kolayca önlenebileceğini umuyorum.
M[v]
satırlara izin vermektir.