[英]Access multiple columns in a 3D numpy array without looping
我有一個形狀為(N, M, L)
的大型 3D 陣列A
。
我有一個列的坐標列表,我想訪問存儲在二維數組B
:
[[i1 j1]
[i2 j2]
[i3 j3]
.... ]
我有一些工作正常但涉及循環B
並多次訪問A
。 有沒有辦法使用切片或其他方法來避免這種情況?
到目前為止我的代碼:
data_out = []
for p in B:
i, j = p
col = A[:, i, j]
data_out.append(col)
使用花哨的索引:
A[(slice(None), *B.T)].T
顯式括號是使用星型擴展所必需的,這意味着您必須明確寫出:
為slice(None)
。 你也可以這樣做
A[:, B[:, 0], B[:, 1]].T
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.