numpy.where() 用法详解

  • Post category:Python

numpy.where()用法详解

在Numpy中,numpy.where()函数是一个非常有用的函数,它可以根据指定的条件返回一个新的数组,或者根据指定的条件替换原始数组中的元素。本文将详细介绍numpy.where()函数的用法。

语法

numpy.where(condition, x, y)

参数说明:

  • condition:一个布尔型数组,用于指定条件。
  • x:一个数组,用于指定条件为True时的返回值。
  • y:一个数组,用于指定条件为False时的返回值。

示例一:根据条件返回新的

import numpy as np

# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5])

# 根条件返回新的数组
b = np.where(a > 3, a, 0)

# 打印结果
print(b)

在上面的示例中,我们首先使用np.array()函数创建了一个一维数组a,然后使用np.where()函数根据条件a > 3返回了一个新的数组b,其中条件为True的元素保留,条件为False的元素替换为0。最后,使用print()函数打印了结果。

输出结果:

[0 0 0 4 5]

示例二:替换原始数组中的元素

import numpy as np

# 创建一个一维数组
a = np.array([1, 2, 3, 4, 5])

# 替换原始数组中的元素
np.where(a > 3, -1, a, out=a)

# 打印结果
print(a)

在上面的示例中,我们首先使用np.array()函数创建了一个一维数组a,然后使用np.where()函数根据条件a > 3替换了原始数组中的元素,其中条件True的元素替换为-1,条件为False的元素保留不变。最后,使用print()函数打印了结果。

输出结果:

[ 1  2  3 -1 -1]

注意事项

  • 当x和y参数都没有指定时,np.where()函数将返回一个元素为True的索数组。
  • 当x和y参数都指定时,np.where()函数将返回一个新的数组,其中条件为True的元素来自x数组,条件False的元素来自y数组。
  • 当只有x参数指定时,np.where()函数将返回一个元素为True的索引数组,其中True的位置对应于x数组中的元素。
  • 当只有y参数指定时,np.where()函数返回一个元素为True的索引数组,其中True的位置对应于y数组中的元素。

综上所述,numpy.where()函数是一个非有用的函数,可以根据指定的条件返回一个新的数组,或者根据指定的条件替换原始数组中的元素。在实际应用中,可以根据具体的求选择不同的用法。