Numpy中的where函数是一个非常实用的函数,它可以帮助我们根据条件选择数组中的元素,where函数的基本语法如下:
numpy.where(condition[, x, y])
参数说明:
condition:一个布尔类型的数组,用于指定条件,当条件为True时,返回x中对应位置的元素;当条件为False时,返回y中对应位置的元素。
x:可选参数,一个数组,用于指定条件为True时返回的值,如果未提供,则默认为1。
y:可选参数,一个数组,用于指定条件为False时返回的值,如果未提供,则默认为0。
下面是一些使用where函数的示例:
1、基本用法
import numpy as np arr = np.array([1, 2, 3, 4, 5]) condition = arr > 3 result = np.where(condition, arr 3, arr) print(result) # 输出:[1 2 3 1 2]
在这个示例中,我们首先创建了一个数组arr
,然后定义了一个布尔类型的数组condition
,用于表示arr
中的元素是否大于3,接着,我们使用where函数根据condition
选择arr
中的元素,当条件为True时,返回arr 3
中对应位置的元素;当条件为False时,返回arr
中对应位置的元素,我们打印出结果数组result
。
2、使用多个条件
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) condition1 = arr > 3 condition2 = arr % 2 == 0 result = np.where((condition1 & condition2), arr 3, arr) print(result)
在这个示例中,我们首先创建了一个二维数组arr
,然后定义了两个布尔类型的数组condition1
和condition2
,分别表示arr
中的元素是否大于3和是否为偶数,接着,我们使用where函数根据这两个条件选择arr
中的元素,当两个条件都满足时(即元素大于3且为偶数),返回arr 3
中对应位置的元素;否则,返回arr
中对应位置的元素,我们打印出结果数组result
。
3、使用x和y参数
import numpy as np arr = np.array([1, 2, 3, 4, 5]) condition = arr > 3 x = np.array([4, 5, 6]) y = np.array([7, 8, 9]) result = np.where(condition, x, y) print(result) # 输出:[4 5 6]
在这个示例中,我们首先创建了一个数组arr
,然后定义了一个布尔类型的数组condition
,用于表示arr
中的元素是否大于3,接着,我们提供了两个数组x
和y
,分别用于指定条件为True时返回的值和条件为False时返回的值,我们使用where函数根据condition
选择对应的值,并打印出结果数组result
。
Numpy中的where函数是一个非常实用的函数,它可以帮助我们根据条件选择数组中的元素,通过合理地使用where函数,我们可以方便地对数组进行筛选、替换等操作,希望本文的介绍能帮助你更好地理解和使用where函数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/479759.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复