Numpy常见方法(3)-条件逻辑np.where方法

本文深入介绍了numpy的where方法,它是三元表达式x if condition else y的向量化版本。详细阐述了where方法的输入输出格式,并通过实例展示了如何使用此方法替换ndarray中的负值元素。通过代码演示,成功将a中负值替换为b中对应位置的元素,突显了numpy向量化操作的高效性。

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

说明:本blog基于python3版本, numpy 1.22.0


前言

numpy的where方法主要应用是三元表达式 x if condition else y 的向量化版本;
【说明:向量化是numpy的特有术语,指的是对ndarray数据中的所有元素进行类似标量的操作】

一、numpy.where方法的输入和输出

numpy.where方法的输入格式服从公式:
numpy.where(condition, x, y), 含义是condition如果为True, 取x中的值,如果为False,取y中的值

numpy.where方法的输出是一个新的ndarray数据
【注意:最好让condition, x, y的shape相同】

二、numpy.where方法应用实例

假设我们有两个ndarray数据,分别称为a 和 b, 现在我们想替换掉a中的负值元素为b中对应位置的元素

代码如下

import numpy as np
a = np.array([[1,-2,-3],[4,-5,6]])
b = np.array([[11,12,13], [14,15,16]])
cond = a > 0
print(a)
print(b)
###使用np.where方法
c = np.where(cond, a, b)
print(c)

结果如下,

[[ 1 -2 -3]
 [ 4 -5  6]]
[[11 12 13]
 [14 15 16]]
[[ 1 12 13]
 [ 4 15  6]]

由上结果可知,我们成功把a中的负值替换为b中对应位置的元素。


总结

写在最后,喜欢本博文就点个赞吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Efred.D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值