numpy学习专题
七、高级索引
高级索引
Numpy 比一般的python序列提供更多的索引方式。除了之前看到的用整数和切片的索引外,数组可以由整数数组索引、布尔索引 整数数组索引获取数组中(0,0),(1,1)和(2,0)位置处的元素
import numpy as np
arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(arr[[0,1,2],[0,1,0]])
[1 5 7]
行索引是[0,0]和[3,3],而列索引是[0,2]和[0,2]
import numpy as np
arr = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print(arr,"\n")
rows = np.array([[0,0],[3,3]])
cols = np.array([[0,2],[0,2]])
arr2 = arr[rows,cols]
print("数组的四角元素是:")
print(arr2)
print("\n",arr[1:3,[0,1]])
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]]
数组的四角元素是:
[[ 0 2]
[ 9 11]]
[[3 4]
[6 7]]
布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组
#打印大于5的元素
import numpy as np
arr = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]])
print(arr[arr>5])
#使用了~(取补运算符)来过滤NaN
arr = np.array([np.nan,1,2,np.nan,3,4,5])
print(arr[~np.isnan(arr)])
[ 6 7 8 9 10 11]
[1. 2. 3. 4. 5.]
一定要支持作者哦