| 索引/切片类型 | 描述/用法 |
|---|
| 基本索引 | 通过下标索引直接访问元素(索引从0开始) |
| 行/列切片 | 使用冒号进行切片,得到行或列的子集 |
| 连续切片 | 从起始索引到结束索引按步长切片 |
| slice | slice(start, stop, step) |
| 布尔索引 | 通过布尔条件筛选满足条件的元素,支持逻辑运算符(&、|) |
1. 一维数组的索引与切片
arr = np.random.randint(1, 50, 20)
print(arr)
[20 17 39 39 17 42 38 8 38 35 7 27 14 12 26 4 11 12 14 20]
# 获取全部元素
print(arr[:])
[20 17 39 39 17 42 38 8 38 35 7 27 14 12 26 4 11 12 14 20]
# 获取部分元素(左闭右开)
print(arr[2:5])
[39 39 17]
# 布尔索引(大于10的元素)
print(arr[arr > 10])
[27 27 20 17 39 39 17 42 38 38 35 27 14 12 26 11 12]
# 大于5小于10的元素
print(arr[(5 < arr) & (arr < 10)])
[8 7]
# slice(start, stop, step)
print(arr[slice(2, 20, 3)])
2. 二维数组的索引与切片
arr = np.random.randint(1, 50, (3, 5))
print(arr)
[[14 20 31 47 33]
[11 44 7 12 19]
[ 4 14 18 44 17]]
# 获取第一行第一列的元素
print(arr[0, 0])
# 获取第二行第三列的元素
print(arr[1, 2])
14
7
print(arr[:, :])
[[14 20 31 47 33]
[11 44 7 12 19]
[ 4 14 18 44 17]]
# 获取第二行的元素
print(arr[1, :])
[11 44 7 12 19]
# 获取第二行下标索引1到3的元素(左闭右开)
print(arr[1, 1:3])
[44 7]
# 布尔索引
print(arr[arr > 10]) # 该方法将符合条件的元素整理为了一维数组
[14 20 31 47 33 11 44 12 19 14 18 44 17]
# 获取第二行中大于10的元素
print(arr[1][arr[1] > 10])
[11 44 12 19]
# 筛选第二列的数据
print(arr[:, 1])
[20 44 14]
评论 (0)