创建数组矩阵

时间:2019-06-23 18:38:29

标签: python tensorflow

我想用张量流中的数组元素创建一个矩阵

假设我想创建一个(2, 2*N)大小的矩阵(以张量流表示),其中N是我拥有的某些数组的大小,例如

a=[1,2,3,..N],
b=2*[1,2,3,..N],
c=3*[1,2,3,..N], 
d=4*[1,2,3,..N]

我想创建一个矩阵M,以便M=[[a,b],[c,d]]通过for循环在矩阵中插入数组。

在张量流中可能吗?

我尝试将其明确写为M=[[a,b],[c,d]] 这样就可以了,但我想在for循环中执行此操作,然后尝试一次插入每个数组。

那么可以在循环内使用类似的东西吗?

M[0,0]=a
M[0,1]=b
M[1,0]=c
M[1,1]=d

谢谢

1 个答案:

答案 0 :(得分:0)

您可以在输入数组上使用zip并使用不同的交错范围:

data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]

print([[a, b] for a, b in zip(data[::2], data[1::2])])

>>> [[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]

如果您想使其更加通用,那么也可以创建具有zip理解的zip输入,并将zip迭代的输出传递给列表构造函数:

data = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]

n = 3

print([list(z) for z in zip(*[data[i::n] for i in range(n)])])

>>> [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [13, 14, 15], [16, 17, 18]]]