如何用Numpy创建数组并筛选指定学生对应的成绩行?
使用NumPy筛选指定学生对应的成绩行
步骤1:创建目标数组
首先导入NumPy并创建题目要求的两个数组:
import numpy as np students = np.array(['Janet', 'Adriana', 'Manual', 'Mohamed', 'Leann']) grades = np.array([[93, 85], [78, 80], [94, 93], [75, 90], [92, 87]])
步骤2:生成筛选掩码
通过布尔条件生成掩码,标记出'Adriana'和'Mohamed'对应的位置:
# 注意使用NumPy的位运算符`|`表示逻辑或,不能用Python内置的`or` mask = (students == 'Adriana') | (students == 'Mohamed')
此时mask的值为array([False, True, False, True, False]),对应两个目标学生的位置为True。
步骤3:筛选成绩行
直接用掩码索引grades数组,即可提取目标学生的成绩:
target_grades = grades[mask] print(target_grades)
运行结果:
[[78 80] [75 90]]
补充说明
NumPy的布尔索引是高效筛选数据的常用方式,只要掩码的长度与被索引数组的第一维度长度匹配,就能精准提取对应位置的元素/行。
内容的提问来源于stack exchange,提问作者IAwa
相关产品推荐
相关产品推荐

