多个条件使用Numpywhere函数

Numpy的where函数是一个非常有用的函数,它可以帮助我们在数组中根据指定的条件替换元素,这个函数的基本语法如下:

成都创新互联总部坐落于成都市区,致力网站建设服务有成都网站设计、做网站、网络营销策划、网页设计、网站维护、公众号搭建、小程序设计、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

numpy.where(condition[, x, y])

condition是一个布尔数组,表示我们想要替换元素的条件;x和y是我们想要替换成的值,它们可以是标量、数组或者其它数据类型。

下面我们来看一些具体的使用例子。

1、使用单个条件替换元素

假设我们有一个数组a,我们想要将数组中所有大于0的元素替换为1,所有小于0的元素替换为1,可以使用以下代码:

import numpy as np
a = np.array([2, 1, 0, 1, 2])
result = np.where(a > 0, 1, a)
print(result)

输出结果为:[2 1 0 1 1]

可以看到,数组中所有大于0的元素都被替换为了1,而所有小于0的元素则被替换为了1。

2、使用多个条件替换元素

我们需要根据多个条件来替换元素,我们有一个数组b,我们想要将数组中所有大于0且小于5的元素替换为3,所有大于5的元素替换为5,可以使用以下代码:

import numpy as np
b = np.array([2, 1, 0, 1, 2, 6])
result = np.where((b > 0) & (b < 5), 3, np.where(b > 5, 5, b))
print(result)

输出结果为:[2 1 3 3 3 5]

可以看到,数组中所有大于0且小于5的元素都被替换为了3,而所有大于5的元素则被替换为了5。

3、根据条件选择多个值进行替换

我们需要根据条件选择不同的值进行替换,我们有一个数组c,我们想要将数组中所有大于0的元素替换为1或2,可以根据元素的位置来决定替换成哪个值,可以使用以下代码:

import numpy as np
c = np.array([2, 1, 0, 1, 2])
result = np.where(c > 0, np.random.choice([1, 2], size=len(c)), c)
print(result)

输出结果为:[2 1 2 1 2](由于是随机选择的,所以每次运行结果可能不同)

可以看到,数组中所有大于0的元素都被替换为了1或2,而所有小于等于0的元素则保持不变。

4、根据条件选择多个值进行替换(多维数组)

对于多维数组,我们可以使用相同的方法进行替换,我们有一个二维数组d,我们想要将数组中所有大于0的元素替换为1或2,可以根据元素的位置来决定替换成哪个值,可以使用以下代码:

import numpy as np
d = np.array([[2, 1], [0, 1], [2, 3]])
result = np.where(d > 0, np.random.choice([1, 2], size=d.shape), d)
print(result)

输出结果为:[[2 1 2 1] [2 1 1 3] [2 1 2 3]](由于是随机选择的,所以每次运行结果可能不同)

可以看到,数组中所有大于0的元素都被替换为了1或2,而所有小于等于0的元素则保持不变,我们可以看到where函数可以自动处理多维数组的广播。

Numpy的where函数是一个非常强大的函数,它可以帮助我们根据指定的条件替换数组中的元素,通过组合不同的条件和值,我们可以实现非常灵活的替换操作,需要注意的是,where函数返回的是一个视图对象,而不是一个新的数组,这意味着对返回的结果进行修改会影响到原始数组,如果需要创建一个新的数组,可以使用copy()方法。

分享标题:多个条件使用Numpywhere函数
本文链接:http://www.gawzjz.com/qtweb2/news12/16712.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联