将数组中的每个值复制为新数组

时间:2019-07-09 10:21:24

标签: python numpy numpy-ndarray

我有一个像这样的numpy ndarray输入

[[T, T, T, F],
  [F, F, T, F]]

我想将每个值都复制为一个新数组,所以输出将是

[[[T,T], [T,T], [T,T], [F,F]]
  [[F,F], [F,F], [T,T], [F,F]]]

我该怎么做?预先谢谢你

2 个答案:

答案 0 :(得分:4)

一种方法是使用np.dstack沿第三轴复制数组:

np.dstack([a, a])

array([[['T', 'T'],
        ['T', 'T'],
        ['T', 'T'],
        ['F', 'F']],

       [['F', 'F'],
        ['F', 'F'],
        ['T', 'T'],
        ['F', 'F']]], dtype='<U1')

设置:

T = 'T'
F = 'F'
a = np.array([[T, T, T, F],
              [F, F, T, F] ])

答案 1 :(得分:0)

您可以只使用列表理解:

data =[['T', 'T', 'T', 'F'],
  ['F', 'F', 'T', 'F'] ]

d = [[[i]*2 for i in j] for j in data]
print (d)

输出:

[[['T', 'T'], ['T', 'T'], ['T', 'T'], ['F', 'F']], [['F', 'F'], ['F', 'F'], ['T', 'T'], ['F', 'F']]]