Python中np.where()的使用方式
作者:允诺@晴天
这篇文章主要介绍了Python中np.where()的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
np.where的使用
np.where()
是NumPy库中一个非常有用的函数,用于根据指定的条件返回一个向量或数组中满足条件的元素的位置。
它的基本语法是:
np.where(condition, x, y)
其中:
condition
是一个布尔数组或布尔条件表达式,用于指定需要满足的条件。x
和y
分别是满足条件和不满足条件时的替代值。它们可以是标量、向量或数组。np.where()
函数返回一个与condition
大小相同的数组,其中满足条件的元素用x
替代,不满足条件的元素用y
替代。
下面是几个示例:
import numpy as np # 例1:使用np.where()替换满足条件的元素 arr = np.array([1, 2, 3, 4, 5]) new_arr = np.where(arr < 3, 0, arr) print(new_arr) # 输出: [0, 0, 3, 4, 5] # 例2:使用np.where()获取满足条件的元素的位置 arr = np.array([1, 2, 3, 4, 5]) indexes = np.where(arr > 3) print(indexes) # 输出: (array([3, 4]),) # 例3:使用np.where()替换多个条件 arr = np.array([1, 2, 3, 4, 5]) new_arr = np.where((arr < 3) | (arr > 4), 0, arr) print(new_arr) # 输出: [0, 0, 3, 0, 5] # 创建一个示例数组 arr = np.array([1, 2, 3, 4, 5]) arr1 = np.array([1, 2, 3, 4, 5]) new_arr = np.where(arr > 2, arr1+1, arr1) print(new_arr)
np.where()[0] 和 np.where()[1]
import numpy as np a = np.arange(12).reshape(3,4) print('a:', a) print('np.where(a > 5):', np.where(a > 5)) print('a[np.where(a > 5)]:', a[np.where(a > 5)]) print('np.where(a > 5)[0]:', np.where(a > 5)[0]) print('np.where(a > 5)[1]:', np.where(a > 5)[1]) print(a[np.where(a > 5)[0], np.where(a > 5)[1]])
a: [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] np.where(a > 5): (array([1, 1, 2, 2, 2, 2]), array([2, 3, 0, 1, 2, 3])) a[np.where(a > 5)]: [ 6 7 8 9 10 11] np.where(a > 5)[0]: [1 1 2 2 2 2] np.where(a > 5)[1]: [2 3 0 1 2 3] [ 6 7 8 9 10 11]
- np.where()[0] 表示行索引
- np.where()[1]表示列索引
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。