【发布时间】:2014-01-23 18:07:01
【问题描述】:
我有一个表示为 numpy 数组的对称矩阵,如下例所示:
[[ 1. 0.01735908 0.01628629 0.0183845 0.01678901 0.00990739 0.03326491 0.0167446 ] [ 0.01735908 1. 0.0213712 0.02364181 0.02603567 0.01807505 0.0130358 0.0107082 ] [ 0.01628629 0.0213712 1. 0.01293289 0.02041379 0.01791615 0.00991932 0.01632739] [ 0.0183845 0.02364181 0.01293289 1. 0.02429031 0.01190878 0.02007371 0.01399866] [ 0.01678901 0.02603567 0.02041379 0.02429031 1. 0.01496896 0.00924174 0.00698689] [ 0.00990739 0.01807505 0.01791615 0.01190878 0.01496896 1. 0.0110924 0.01514519] [ 0.03326491 0.0130358 0.00991932 0.02007371 0.00924174 0.0110924 1. 0.00808803] [0.0167446 0.0107082 0.01632739 0.01399866 0.00698689 0.01514519 0.00808803 1.]]而且我需要在不考虑对角线的情况下找到最大值的索引(行和列)。由于是对称矩阵,我只取了矩阵的上三角形。
ind = np.triu_indices(M_size, 1)
然后是最大值的索引
max_ind = np.argmax(H[ind])
但是 max_ind 是用 triu_indices 取上三角形后得到的向量的索引,我怎么知道我的值的行和列刚刚发现?
矩阵可以是任意大小,但始终是对称的。您知道实现相同目标的更好方法吗? 谢谢
【问题讨论】: