Skip to main content
 首页 » 编程设计

python之根据长度列表从 numpy 数组中选择元素

2025年05月04日17fff_TT

假设我有一个像这样的 numpy 数组:

arr = np.array([[1,1,1,1], [2,2,2,2], [3,3,3,3], [4,4,4,4]) 

我还有一个确定预期长度的列表:

lens = [1,2,3,4]  

是否有一种优雅的 Pythonic 方式来返回一个新数组,并使用 lens 变量选择每个对应的元素?

输出应该是:

[[1], [2,2],[3,3,3], [4,4,4,4]] 

请您参考如下方法:

如果每个 Numpy arr 列表元素大小小于 5,则此方法有效。

使用zip:

[a[:i].tolist() for a, i in zip(arr, lens)] 

输出:

[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]