【发布时间】:2020-11-18 14:04:02
【问题描述】:
假设一个形状为 4,4,1,1 的 4D 数组。目标是提取(n, m) 数组的下三角形。
目前,以下依赖于 for 循环的代码可以完成这项工作。
import numpy as np
lw_up_pair = np.tril_indices(4, -1)
arr=np.zeros((4,4,1,1))
arr[1,:1,:,0]=1
arr[2,:2,0,0]=2
arr[3,:3,0,0]=3
ext=[arr [x, i, :, 0] for x,i in zip(lw_up_pair [0],lw_up_pair [1])] # expected output
不过不知道有没有更快的或者numpy内置的方法可以达到类似的效果?
【问题讨论】:
-
邮编是
np.stack(lw_up_pair, -1)