一维数组切片操作
- 获取特定位置元素:使用整数索引,索引从0开始。例如:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[2]) # 获取索引为2的元素,输出3
- 获取范围数据:使用切片语法
start:stop:step
。例如:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[1:4]) # 获取索引1到3(不包含4)的元素,输出[2 3 4]
print(arr[::2]) # 从开始到结束,步长为2,输出[1 3 5]
二维数组切片操作
- 获取特定位置元素:通过两个整数索引指定行和列。例如:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[1, 2]) # 获取第2行第3列的元素,输出6
- 获取范围数据:对行和列分别使用切片语法。例如:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr[0:2, 1:3])
# 获取第1到2行(不包含2),第2到3列(不包含3)的元素
# 输出[[2 3]
# [5 6]]
整数索引实际应用场景
- 图像像素操作:在处理图像时,图像可以表示为三维数组(高度、宽度、颜色通道)。如果要获取图像中特定位置的像素值,可以使用整数索引。例如,要获取图像中某个特定点的红色通道值:
import numpy as np
# 假设图像是一个100x100的RGB图像
image = np.random.randint(0, 256, size=(100, 100, 3), dtype=np.uint8)
red_value = image[50, 50, 0] # 获取第50行,第50列像素的红色通道值
布尔索引
- 提取数组中的元素:通过布尔数组进行索引,布尔数组与原数组形状相同,True表示选取对应位置的元素,False表示不选取。例如:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
bool_index = arr > 3
print(arr[bool_index]) # 输出[4 5]
- 在二维数组中的应用:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
bool_index = arr % 2 == 0
print(arr[bool_index])
# 输出[2 4 6 8],获取所有偶数元素
布尔索引实际应用场景
- 数据分析:在数据分析中,经常需要根据条件筛选数据。例如,有一个包含学生成绩的数组,要筛选出成绩大于90分的学生成绩:
import numpy as np
scores = np.array([85, 92, 78, 95, 88])
high_scores = scores[scores > 90]
print(high_scores) # 输出[92 95]