我有数组
[[ 430 780 1900 420][ 0 0 2272 1704]]
并且需要把它转换成这样的结果:
[[[ 430 780 1] [1900 420 1]] [[ 0 0 1] [2272 1704 1]]]
基本上将一个 2d 数组转换为 3d,将每个数组分成 2 并在其后附加数字 1。我怎样才能实现它?
请您参考如下方法:
正如评论中所指出的,这个问题对更大的数组会发生什么留下了一些歧义,但是获得您指出的结果的一种方法是这样的:
import numpy as np
a = np.array([[430, 780, 1900, 420], [0, 0, 2272, 1704]])
b = a.reshape(a.shape[0], -1, 2)
b = np.concatenate([b, np.ones_like(b[..., -1:])], -1)
print(b)
# [[[ 430 780 1]
# [1900 420 1]]
#
# [[ 0 0 1]
# [2272 1704 1]]]
