【问题标题】:Creating a matrix of arrays创建数组矩阵
【发布时间】:2019-06-23 18:38:29
【问题描述】:

我想用 tensorflow 中的数组元素创建一个矩阵

假设我想创建一个大小为 (2, 2*N)(在 tensorflow 中)的矩阵,其中 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

谢谢

【问题讨论】:

  • 为什么要在for循环中做呢?

标签: python tensorflow


【解决方案1】:

您可以在具有不同交错范围的输入数组上使用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 迭代的输出传递给列表构造函数:

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]]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-23
    • 2011-02-11
    • 2015-11-19
    • 1970-01-01
    相关资源
    最近更新 更多