五、ndarray索引与切片

suaxi
2025-11-14 / 0 评论 / 8 阅读 / 正在检测是否收录...
索引/切片类型描述/用法
基本索引通过下标索引直接访问元素(索引从0开始)
行/列切片使用冒号进行切片,得到行或列的子集
连续切片从起始索引到结束索引按步长切片
sliceslice(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

评论 (0)

取消