【发布时间】:2020-08-05 22:17:11
【问题描述】:
如何将非对称的numpy矩阵转换为对称矩阵?
请求是:如果上三角(对角线以上)的元素a[i][j]为1,则下三角a[j][i]的元素应改为1。
下三角形也一样,如果a[ i ][ j ] =1,则上三角形的对称元素a[ j ][ i ]应该是1。
只需关心将元素从 0 更改为 1,不要将其从 0 更改为 1。
我可以用两个或更多的for循环来解决它,但是我想知道如何以更pythonic的方式来解决它,并且时间效率更高?
提前致谢!
例如:
a= np.array ([[0, 0, 1, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 1, 1],
[1, 1, 0, 0, 0],
[1, 1, 0, 1, 0]])
结果应该是:
a= np.array ([[0, 0, 1, 1, 1],
[0, 0, 0, 1, 1],
[1, 0, 0, 1, 1],
[1, 1, 1, 0, 1],
[1, 1, 1, 1, 0]])
【问题讨论】:
-
发布的解决方案对您有用吗?如果是,请考虑接受。
标签: python arrays performance numpy