假設我有一個 3 維 [x,y,z] 的 numpy 陣列,我想在 z 維上的條件下提取 x 和 y 維,例如,如果 z==1。我怎么能這樣做?
uj5u.com熱心網友回復:
您可以為此使用 numpy 索引。考慮一個陣列:
a = np.arange(21).reshape((-1, 3))
# array([[ 0, 1, 2],
# [ 3, 4, 5],
# [ 6, 7, 8],
# [ 9, 10, 11],
# [12, 13, 14],
# [15, 16, 17],
# [18, 19, 20]])
現在你想要最后一列的條件......說永遠數字:
# all rows ? ? third column
filtered = a[a[:, 2] % 2 == 0]
# array([[ 0, 1, 2],
# [ 6, 7, 8],
# [12, 13, 14],
# [18, 19, 20]])
只需選擇前兩列:
filtered[:,:2]
# array([[ 0, 1],
# [ 6, 7],
# [12, 13],
# [18, 19]])
這是有效的,因為這給出了一個布爾陣列......
i = a[:, 2] % 2 == 0
# array([ True, False, True, False, True, False, True])
...然后可用于索引原始檔案:
a[i]
# array([[ 0, 1, 2],
# [ 6, 7, 8],
# [12, 13, 14],
# [18, 19, 20]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397945.html
