Python 将二维数组转换为重复现有值的三维数组
我有一个形状数组(360480),包含从1到11的值Python 将二维数组转换为重复现有值的三维数组,python,arrays,multidimensional-array,reshape,Python,Arrays,Multidimensional Array,Reshape,我有一个形状数组(360480),包含从1到11的值 Array([[ 1, 1, 1, ..., 1, 1, 1], [ 1, 1, 1, ..., 1, 1, 1], [ 1, 1, 1, ..., 1, 1, 1], ..., [ 4, 4, 4, ..., 11, 11, 11], [ 4, 4, 4, ..., 11, 11, 11], [ 4, 4, 4, ..., 11, 11, 11]]) 我怎样才
Array([[ 1, 1, 1, ..., 1, 1, 1],
[ 1, 1, 1, ..., 1, 1, 1],
[ 1, 1, 1, ..., 1, 1, 1],
...,
[ 4, 4, 4, ..., 11, 11, 11],
[ 4, 4, 4, ..., 11, 11, 11],
[ 4, 4, 4, ..., 11, 11, 11]])
我怎样才能将这个数组重塑成一个数组的形状(360480,3)呢
np.all(array[:,:,0]==array[:,:,1])
及
都是真的吗?
预期结果应该是:
array([[[ 1, 1, 1],
[ 1, 1, 1],
[ 1, 1, 1],
...,
[ 1, 1, 1],
[ 1, 1, 1],
[ 1, 1, 1]],
[[ 4, 4, 4],
[ 4, 4, 4],
[ 4, 4, 4],
...,
[11, 11, 11],
[11, 11, 11],
[11, 11, 11]],
[[ 4, 4, 4],
[ 4, 4, 4],
[ 4, 4, 4],
...,
[11, 11, 11],
[11, 11, 11],
[11, 11, 11]]])
您可以使用numpy.repeat函数
这正是我要找的!它按我的要求工作!
array([[[ 1, 1, 1],
[ 1, 1, 1],
[ 1, 1, 1],
...,
[ 1, 1, 1],
[ 1, 1, 1],
[ 1, 1, 1]],
[[ 4, 4, 4],
[ 4, 4, 4],
[ 4, 4, 4],
...,
[11, 11, 11],
[11, 11, 11],
[11, 11, 11]],
[[ 4, 4, 4],
[ 4, 4, 4],
[ 4, 4, 4],
...,
[11, 11, 11],
[11, 11, 11],
[11, 11, 11]]])
array3d = np.repeat(array2d[:, :, None], repeats=3, axis=2)