Skip to main content
 首页 » 编程设计

python之如何从另一个数组的值中获取一个 numpy 数组 (Python)

2025年05月04日15kevingrace

我有数组

[[ 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]]]