说明:本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中对应位置的元素。
总结
写在最后,喜欢本博文就点个赞吧~