【发布时间】:2021-09-13 21:30:29
【问题描述】:
我有以下二进制矩阵(numpy 数组):
M = np.array([[1, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 1], [0, 0, 1, 0]])
实际上,它在对角线上有两个三角形。 我想反转矩阵的块,使两个三角形出现在另一个对角线上,但保持相同的形状:
M = np.array([[0, 0, 1, 1], [0, 0, 1, 0], [1, 1, 0, 0], [1, 0, 0, 0]])
我尝试使用带有 sort_index() 的 Dataframe 以及可能的轴和升序组合,但它们都不起作用。
我该怎么做?
我需要一个通用代码,它也适用于对角线上有这些三角形结构的更大矩阵。
【问题讨论】:
-
IIUC,我认为最后一行的预期输出有错误(应该是
[0, 1, 0, 0]) -
有一个错误,但反过来。我刚刚修好了。
-
如果数组是:
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]]),你能给出预期的输出吗? -
鉴于三角形的解释,我真的不明白 OP 想要什么......
-
我添加了一个视觉图像来试图澄清