【发布时间】:2019-12-07 00:58:30
【问题描述】:
我有三个 (n,n) 数组,我需要以一种非常具体的方式组合它们,以便产生 n*n 个新数组,它们必须组合成一个大数组。
我基本上需要从每个数组中取出一个元素并创建一个新的(3,3) 数组,其中对角线是三个元素(其余为空),然后将这些新数组合并为一个。
正确解释有点困难。我试图在下面举一个例子,希望能对我正在尝试做的事情有所了解。
示例:给定三个(2,3) 数组:
a = np.array([[2,5,9], [7,2,4]])
b = np.array([[3,6,2], [1,6,8]])
c = np.array([[8,7,4], [9,3,1]])
使用a、b 和c 中的元素作为对角线创建六个数组:
T1 = ([[ 2, 0, 0],
[ 0, 3, 0],
[ 0, 0, 8]])
T2 = ([[ 5, 0, 0],
[ 0, 6, 0],
[ 0, 0, 7]])
T3 = ([[ 9, 0, 0],
[ 0, 2, 0],
[ 0, 0, 4]])
T4 = ([[ 7, 0, 0],
[ 0, 1, 0],
[ 0, 0, 9]])
T5 = ([[ 2, 0, 0],
[ 0, 6, 0],
[ 0, 0, 3])
T6 = ([[ 4, 0, 0],
[ 0, 8, 0],
[ 0, 0, 1]])
将六个数组组合起来产生
array([[ 2, 0, 0, 5, 0, 0, 9, 0, 0],
[ 0, 3, 0, 0, 6, 0, 0, 2, 0],
[ 0, 0, 8, 0, 0, 7, 0, 0, 4],
[ 7, 0, 0, 2, 0, 0, 4, 0, 0],
[ 0, 1, 0, 0, 6, 0, 0, 8, 0],
[ 0, 0, 9, 0, 0, 3, 0, 0, 1]])
如
array([[ T1, T2, T3],
[ T4, T5, T6]])
*这六个数组本身不需要作为单独的数组,只需要最后一个数组。我刚刚选择了这条路线,因为它使最终路线的组成更加明显。
【问题讨论】:
-
(3,3)是一个错字。现在已经修复了