我正在寻找一种有效的方法(最好是矢量化快速内置函数)以对角线顺序展平 numpy 数组。例如:
A=np.array([[1,2,3],
[4,5,6],
[7,8,9]])
b=flatten_diagonally(A)
b
应该是[7,4,8,1,5,9,2,6,3]
。
A
将是一个非常大的矩阵,所以我不想单独迭代元素。出于同样的原因,我也不想提前准备一份按正确顺序列出的所有索引的列表。由于A
很大并且结果将同样大,我想避免另外使用大量内存的解决方案。
如果我可以指定我想要展平的对角线的哪个子集会更好,例如展平只有第一个和第二个对角线会给出[1,5,9,2,6]
.