我希望建立一个模仿MNIST手写集的训练集。具体来说,训练集是以下形式的元组列表:
example_tuple = (np.array([[0.],[0.],[0.],[0.],[0.]], dtype=np.float32), np.array([[0.],[0.]]))
我循环遍历for循环,创建一个相同形状的新元组,并希望将其附加到第一个元组,以便结果是列表类型。当然,元组不能被追加,所以我不确定是否要创建一个包含两个numpy数组的元组列表。
理想情况下,培训数据的最终形式如下:
[(array([[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.]], dtype=float32), array([[ 0.],
[ 0.]])), (array([[1.],
[1.],
[1.],
[1.],
[1.]], dtype=float32), array([[1.],
[1.]]))]
如果有任何其他信息我可以提供帮助,请告知我们。提前谢谢!
答案 0 :(得分:0)
如果您可以创建列表列表,那么您只需将其转换为这样的元组列表:
[tuple(v) for v in list_of_list]
答案 1 :(得分:0)
您是否只能创建元组,并将它们附加到列表中。这会产生您想要的结果:
In [31]: alist=[]
In [32]: for i in range(3):
...: tup = np.ones((5,1))*i, np.ones((2,1))*i
...: alist.append(tup)
...:
In [33]: alist
Out[33]:
[(array([[ 0.],
[ 0.],
[ 0.],
[ 0.],
[ 0.]]), array([[ 0.],
[ 0.]])), (array([[ 1.],
[ 1.],
[ 1.],
[ 1.],
[ 1.]]), array([[ 1.],
[ 1.]])), (array([[ 2.],
[ 2.],
[ 2.],
[ 2.],
[ 2.]]), array([[ 2.],
[ 2.]]))]
虽然你不能append
一个元组,但你可以将它们中的两个连接起来,例如: alist[0]+alist[1]
,但这会创建一个4元素元组,我认为你不想要它。您的目标似乎只是一个元组列表。