【发布时间】:2016-01-06 18:29:02
【问题描述】:
假设我们有一个像这样的二维 numpy 数组:
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]]
我想在对角线上插入一个值,比如 0,这样它就变成了:
matrix = [[0, 1, 2, 3],
[4, 0, 5, 6],
[7, 8, 0, 9],
[10, 11, 12, 0]]
最快的方法是什么?
【问题讨论】:
-
形状总是
(4, 3)?有什么限制吗?如果您尝试在形状为(3, 4)的数组中插入对角线,您想要什么? -
原始形状总是这样 (n+1,n) 其中 n > 0 但我希望答案也适用于 (n,n)。
-
我会创建一个新数组(零)并使用
np.tri...函数将上下三角形从旧数组复制到新数组。
标签: python numpy matrix diagonal