我試圖將矩陣中從右上角到左下角的所有對角線存盤在一個陣列中。
matrix = array([[2, 0, 0, 2],
[3, 0, 0, 3],
[3, 0, 0, 2],
[0, 0, 0, 0]])
預期輸出
[
[2],
[0, 3],
[0, 0, 2],
[2, 0, 0, 0],
[3, 0, 0],
[3, 0],
[0]
]
我試圖做的是這段代碼:但是,這將使我獲得從左上角到右下角的所有對角線
def get_diags_lower_left(matrix):
return [np.fliplr(matrix).diagonal(i) for i in range(-3, 4)][::-1]
uj5u.com熱心網友回復:
適用于任何 MxN 矩陣的更通用的解決方案:
[matrix.diagonal(i) for i in range(-matrix.shape[0] 1, matrix.shape[1])][::-1]
輸出:
[array([2]),
array([0, 3]),
array([0, 0, 2]),
array([2, 0, 0, 0]),
array([3, 0, 0]),
array([3, 0]),
array([0])]
uj5u.com熱心網友回復:
如果您不翻轉矩陣,它就可以作業。使用:
def get_diags_lower_left(matrix):
return [matrix.diagonal(i) for i in range(-3, 4)][::-1]
將產生:
[array([2]),
array([0, 3]),
array([0, 0, 2]),
array([2, 0, 0, 0]),
array([3, 0, 0]),
array([3, 0]),
array([0])
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352941.html
上一篇:將資訊從AJAX傳遞到控制器類
