Cle*_*lee 1 python numpy python-3.x numpy-ndarray
假设我有一个像这样的numpy数组:
arr = np.array([[1,1,1,1], [2,2,2,2], [3,3,3,3], [4,4,4,4])
Run Code Online (Sandbox Code Playgroud)
我也有一个确定预期长度的列表:
lens = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)
是否有一种优雅而Pythonic的方式来返回一个新数组,并使用该lens变量选择了每个对应的元素?
输出应为:
[[1], [2,2],[3,3,3], [4,4,4,4]]
Run Code Online (Sandbox Code Playgroud)
如果每个Numpy arr列表元素的大小小于5,则可以使用。
用途zip:
[a[:i].tolist() for a, i in zip(arr, lens)]
Run Code Online (Sandbox Code Playgroud)
输出:
[[1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
Run Code Online (Sandbox Code Playgroud)