我有一个 4 维数组,我需要沿给定维度处理该数组中的所有 1 维向量。这很好用:
def myfun(arr4d,selected_dim): # selected_dim 只能是 2 或 3 打印 arr4d.shape # (2, 5, 10, 10) 对于 xrange(arr4d.shape[0]) 中的 i: 对于 xrange(arr4d.shape[1]) 中的 j: 对于 xrange 中的 k(arr4d.shape[selected_dim]): 如果 selected_dim==2: arr=arr4d[i,j,k,:] elif selected_dim==3: arr=arr4d[i,j,:,k] do_something(arr) # arr 是一维的,有 10 个项目
...但我相信有一些方法可以避免嵌套的“if”部分,也许也更有效?就像在循环之前创建这个数组的其他视图然后遍历这些视图?