python - 获取数组中从右上角到左下角的所有对角线
问题描述
我试图将矩阵中的所有对角线从右上角存储到左下角并将它们存储在一个数组中。
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]
解决方案
如果您不翻转矩阵,它会起作用。使用:
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])
]
推荐阅读
- python - 如何找到精灵之间的距离?
- python - 为什么在下面的代码中使用 return 语句末尾的括号,为什么如果我不使用括号它返回地址?
- python - 使用数据框中的条件调整循环内的值
- python - 从 wef 输出文件中提取数据
- google-closure-compiler - 将 JSON 对象注释为 Google Closure Compiler 的数组
- reactjs - React-Admin 参考输入问题
- javascript - 内联嵌入字段不起作用
- ios - 为什么我无法获取存储在 firestore 子集合中的所有文档?
- javascript - 如何在javascript中将时间戳'字符串'转换为日期?
- java - 设置 hive.exec.pre.hooks 时出现 ClassNotFoundException