Numpy.array indexing


import numpy as np

arr = np.array([[0, 1, 0],
[1, 0, 0],
[1, 0, 0]])
mask = arr

print('boolean mask is:')
print(mask)
print('arr[mask] is:')
print(arr[mask])

结果:

boolean mask is:
[[0 1 0]
[1 0 0]
[1 0 0]]
arr[mask] is:
[[[0 1 0]
[1 0 0]
[0 1 0]]
[[1 0 0]
[0 1 0]
[0 1 0]]
[[1 0 0]
[0 1 0]
[0 1 0]]]

我知道当掩码是2-D时索引是如何工作的,但当掩码是3-D时我很困惑。有人能解释吗?

import numpy as np
l = [[0,1,2],[3,5,4],[7,8,9]]
arr = np.array(l) 
mask = arr[:,:] > 5
print(mask) # shows boolean results
print(mask.sum()) # shows how many items are > 5
print(arr[:,1]) # slicing
print(arr[:,2]) # slicing 
print(arr[:, 0:3]) # slicing

输出

[[False False False]
[False False False]
[ True  True  True]]
3
[1 5 8]
[2 4 9]
[[0 1 2]
[3 5 4]
[7 8 9]]

最新更新