numpy where使用详解
参考:Exploring numpy.where Function
Numpy数值计算库,广泛应用于数据分析和科学计算领域。numpy 中的 where 函数可以根据指定的条件返回符合条件的元素的位置。
numpy.where 函数的基本用法
numpy.where 函数的基本语法如下:
numpy.where(condition[, x, y])
其中,condition 是一个用于筛选元素的条件,x 和 y 是可选参数,用于指定符合条件和不符合条件的替代值。
下面是一个简单的示例,展示了如何使用 numpy.where 函数:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
condition = arr > 3
result = np.where(condition, arr, 0)
print(result)
在上面的示例中,我们首先创建了一个包含 [1, 2, 3, 4, 5] 的数组 arr,然后定义了一个条件 arr > 3,该条件为 True 表示 arr 中的元素大于 3。最后我们使用 np.where 函数根据条件将符合条件的元素替换成 arr 中的值,不符合条件的元素替换成 0。
运行该程序,输出如下:

多维数组中的 numpy.where
除了一维数组,numpy.where 函数也可以用于多维数组。在多维数组中,可以使用 numpy.where 函数根据不同的条件进行替换。
下面是一个示例,展示了如何在多维数组中使用 numpy.where 函数:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
condition = arr > 3
result = np.where(condition, arr, 0)
print(result)
在上面的示例中,我们创建了一个 3×3 的二维数组 arr,然后定义了一个条件 arr > 3,我们使用 np.where 函数根据条件将符合条件的元素替换成 arr 中的值,不符合条件的元素替换成 0。运行该程序,输出如下:

numpy.where 的高级用法
除了简单的替换操作,numpy.where 还可以用于更加复杂的操作。例如,我们可以根据不同的条件选择不同的替换值,或者根据条件进行元素的位置替换。
下面是一个示例,展示了 numpy.where 的高级用法:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([10, 20, 30, 40, 50])
condition = np.array([True, False, True, False, True])
result = np.where(condition, arr1, arr2)
print(result)
在上面的示例中,我们创建了两个一维数组 arr1 和 arr2,以及一个条件数组 condition。根据 condition 数组的值,如果为 True,则取 arr1 中的对应位置的值,如果为 False,则取 arr2 中的对应位置的值。运行该程序,输出如下:

numpy.where 对字符串数组的操作
numpy.where 还可以对字符串数组进行替换等操作。示例代码如下:
import numpy as np
arr = np.array(['data', 'numpywhere.com', 'geek-docs.com', 'deepinout.com'])
result = np.where(arr == 'data', 'Web', arr)
print(result)
运行结果:

总结
numpy.where 函数是一个非常方便的工具,可以根据条件对数组进行替换和筛选操作。通过灵活运用 numpy.where 函数,我们可以轻松实现复杂的数组操作,提高数据处理的效率和灵活性。
极客笔记