首页 > 解决方案 > Numpy.array 索引

问题描述

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 时会感到困惑。任何人都可以解释一下吗?

标签: pythonnumpy

解决方案


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]]

推荐阅读