将数组中的每个值复制为一个新数组
Duplicate every value in array as a new array
我有一个像这样的 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]]]
我该怎么做?提前谢谢你
一种方法是使用 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] ])
你可以只使用列表理解:
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']]]
我有一个像这样的 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]]]
我该怎么做?提前谢谢你
一种方法是使用 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] ])
你可以只使用列表理解:
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']]]