【发布时间】:2015-11-03 20:20:58
【问题描述】:
我有一个列数和行数相等的二维 numpy 数组。我想将它们排列成一个更大的阵列,在对角线上有较小的阵列。应该可以指定起始矩阵在对角线上的频率。例如:
a = numpy.array([[5, 7],
[6, 3]])
因此,如果我希望这个数组在对角线上 2 次,则所需的输出将是:
array([[5, 7, 0, 0],
[6, 3, 0, 0],
[0, 0, 5, 7],
[0, 0, 6, 3]])
3次:
array([[5, 7, 0, 0, 0, 0],
[6, 3, 0, 0, 0, 0],
[0, 0, 5, 7, 0, 0],
[0, 0, 6, 3, 0, 0],
[0, 0, 0, 0, 5, 7],
[0, 0, 0, 0, 6, 3]])
有没有一种快速的方法可以使用 numpy 方法和任意大小的起始数组(仍然考虑起始数组具有相同的行数和列数)来实现这一点?
【问题讨论】: