Sto facendo alcuni calcoli su una matrice completa che è ridondante (cioè può essere una matrice triangolare senza perdere informazioni). Mi sono reso conto che posso calcolare solo la parte inferiore del triangolo per risultati più rapidi. Come posso proiettare il triangolo inferiore nella parte superiore una volta fatto?Come convertire la matrice triangolare in quadrato in NumPy?
In altre parole, come è possibile invertire il metodo np.tril
?
print DF_var.as_matrix()
# [[1 1 0 1 1 1 0 1 0 0 0]
# [1 1 1 1 1 0 1 0 1 1 1]
# [0 1 1 0 0 0 0 0 0 0 0]
# [1 1 0 1 0 0 0 0 0 0 0]
# [1 1 0 0 1 0 0 0 0 0 0]
# [1 0 0 0 0 1 1 0 0 0 0]
# [0 1 0 0 0 1 1 0 0 0 0]
# [1 0 0 0 0 0 0 1 1 0 0]
# [0 1 0 0 0 0 0 1 1 0 0]
# [0 1 0 0 0 0 0 0 0 1 0]
# [0 1 0 0 0 0 0 0 0 0 1]]
print np.tril(DF_var.as_matrix())
# [[1 0 0 0 0 0 0 0 0 0 0]
# [1 1 0 0 0 0 0 0 0 0 0]
# [0 1 1 0 0 0 0 0 0 0 0]
# [1 1 0 1 0 0 0 0 0 0 0]
# [1 1 0 0 1 0 0 0 0 0 0]
# [1 0 0 0 0 1 0 0 0 0 0]
# [0 1 0 0 0 1 1 0 0 0 0]
# [1 0 0 0 0 0 0 1 0 0 0]
# [0 1 0 0 0 0 0 1 1 0 0]
# [0 1 0 0 0 0 0 0 0 1 0]
# [0 1 0 0 0 0 0 0 0 0 1]]
Come riconvertirlo in una matrice completa?
wow @divakar, questa è una risposta incredibile e completa. È davvero utile vedere tutti questi metodi per attaccare questo problema. Farò sicuramente riferimento a questo più e più volte. –
il confronto con le esibizioni è davvero bello, grazie per la risposta! – silgon