numpy中矩阵的数据选取
例子
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
单个选取
arr[1]
Run:
[4,5,6]
arr[1,2]
- 选取第二行中的第三个数
Run:
6
arr[[1,2,2]]
- 相当于[arr[1],arr[2],arr[2]]
Run:
[[4 5 6]
[7 8 9]
[7 8 9]]
arr[[[[[1,2]]]]]
- 相当于[[[arr[1],arr[2]]]]
Run:
[[[[4 5 6]
[7 8 9]]]]
arr[1][1]
- 相当于(arr[1])[1]
Run:
5
arr[[1,2],[1,0]]
- arr[a,b]=>相当于第a行的第b列
- arr[[1,2],[1,0]]=> [arr[1,1],arr[2,0]]
Run:
[5,7]
切片划分
arr[:3]
Run:
[[1 2 3]
[4 5 6]
[7 8 9]]
arr[2:3,1:3]
[[8 9]]
条件筛选
arr[arr > 5]
Run:
[6 7 8 9]
condition = arr > 5
arr[condition]
Run:
[6 7 8 9]
condition = arr > 5
np.where(condition,-1,arr)
- 当满足condition条件时都改为-1,否则维持arr原来的数值
Run:
[[ 1 2 3]
[ 4 5 -1]
[-1 -1 -1]]
condition = arr > 5
np.where(condition,-1,2)
- 当满足condition条件时都改为-1,否则变为2
Run:
[[ 1 2 3]
[ 4 5 2]
[ 2 2 2]]
condition = arr > 5
np.where(condition,-1,-arr-1)
- 当满足condition条件时都改为-1,否则变为-arr-1
Run:
[[-2 -3 -4]
[-5 -6 -1]
[-1 -1 -1]]