Numpy的高级运算(布尔赋值,all,any,where)

本文通过实例演示了如何利用NumPy进行逻辑运算和条件判断,包括成绩数据的真值判断、布尔赋值、使用np.all()和np.any()函数进行条件检查,以及运用np.where()函数实现复杂的条件赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 逻辑运算

>>> score = np.random.randint(40, 100, (10, 5))          # 生成10名同学,5门功课的数据
>>> test_score = score[6:, 0:5]                          # 取出最后4名同学的成绩,用于逻辑判断

逻辑判断, 如果成绩大于60就标记为True 否则为False

>>> test_score > 60                                                      
array([[ True,  True,  True, False,  True],
       [ True,  True,  True, False,  True],
       [ True,  True, False, False,  True],
       [False,  True,  True,  True,  True]])

BOOL赋值, 将满足条件的设置为指定的值

>>> test_score[test_score > 60] = 1
>>> test_score
array([[ 1,  1,  1, 52,  1],
       [ 1,  1,  1, 59,  1],
       [ 1,  1, 44, 44,  1],
       [59,  1,  1,  1,  1]])

2 判断函数

np.all() 判断前两名同学的成绩[0:2, :]是否全及格

>>> np.all(score[0:2, :] > 60)
False

np.any()判断前两名同学的成绩[0:2, :]是否有大于90分的

>>> np.any(score[0:2, :] > 80)
True

3 np.where(三元运算符)

判断前四名学生,前四门课程中,成绩中大于60的置为1,否则为0

temp = score[:4, :4]
np.where(temp > 60, 1, 0)

复合逻辑需要结合np.logical_and和np.logical_or使用
a 判断前四名学生,前四门课程中,成绩中大于60且小于90的换为1,否则为0

np.where(np.logical_and(temp > 60, temp < 90), 1, 0)

b 判断前四名学生,前四门课程中,成绩中大于90或小于60的换为1,否则为0

np.where(np.logical_or(temp > 90, temp < 60), 1, 0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值