我有数组
[[ 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]]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句