多个条件使用Numpy where函数

多个条件使用Numpy where函数

参考:Numpy where function with multiple conditions

在Numpy中,我们经常需要根据多个条件来选择数组中的元素。np.where()函数可以帮助我们根据条件返回符合条件的元素的索引或值。

基础使用语法

Numpywhere 函数的语法如下:

numpy.where(condition, x, y)
  • condition: 在数组上应用的条件。
  • x: 如果条件为 True,则使用此值。
  • y: 如果条件为 False,则使用此值。

基础使用示例

假设我们有一个Numpy数组arr,我们想要根据两个条件选择数组中的元素:大于0并且小于10。我们可以使用以下代码来实现:

import numpy as np

arr = np.array([1, 5, -3, 8, 11, 0, -2])

# 使用np.where()函数,传入两个条件表达式
result = np.where((arr > 0) & (arr < 10))

print(result)

运行以上代码,我们会得到如下结果:

多个条件使用Numpy where函数

这表示索引为0, 1, 3的元素满足条件(大于0并且小于10)。

除了返回符合条件的元素的索引外,np.where()函数还可以返回符合条件的元素的值。我们可以使用如下代码来实现:

import numpy as np

arr = np.array([1, 5, -3, 8, 11, 0, -2])
result_values = arr[np.where((arr > 0) & (arr < 10))]

print(result_values)

运行以上代码,我们会得到如下结果:

多个条件使用Numpy where函数

这表示数组中大于0并且小于10的元素的值分别为1、5和8。

总而言之,np.where()函数可以帮助我们根据多个条件选择数组中的元素的索引或值,非常方便实用。

示例1

数组元素根据两个条件:arr > 2 且 arr < 5,根据两个条件来限定输出数组。示例代码如下:

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

result = np.where((arr > 2) & (arr < 5), arr, 0)
print(result)

运行结果:

多个条件使用Numpy where函数

示例2

依据条件:满足大于70并且可以被10整除条件的元素置为0,示例代码如下:

import numpy as np

arr = np.array([50, 60, 70, 80, 90, 100])

result = np.where((arr > 70) & (arr % 10 == 0), arr, 0)
print(result)

运行结果:

多个条件使用Numpy where函数

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程