
numpy.where()、numpy.nonzero()结构及用法||参数详解
numpy.where(condition, x, y)
发布日期:2021-05-07 14:30:41
浏览次数:16
分类:精选文章
本文共 1440 字,大约阅读时间需要 4 分钟。
numpy.where和numpy.nonzero的详细解释
numpy.where的两种用法
numpy.where是一个强大的函数,用于根据条件选择数组中的元素。它有两种主要用法,具体取决于是否传递x和y参数。
这种用法最为常用。它接受三个参数:
- condition:一个布尔数组,表示哪些位置满足条件。
- x:满足条件的位置对应的值。
- y:不满足条件的位置对应的值。
函数返回一个新的数组,其中满足条件的位置取自x,不满足条件的位置取自y。返回的数组类型与x和y一致。
示例:
import numpy as npcondition = np.array([[True, False], [True, True]])x = np.array([[1, 2], [3, 4]])y = np.array([[9, 8], [7, 6]])result = np.where(condition, x, y)print(result) # 输出:[[1, 8], [3, 4]]
- numpy.where(condition)
- 一维数组:
- 二维数组:
- 三维数组:
- numpy.where(condition, x, y):根据条件选择x或y中的值,返回新数组。
- numpy.where(condition):返回满足条件的元素的坐标。
- numpy.nonzero(condition):返回非零元素的坐标,适用于多维数组。
如果只传递condition参数,不传递x和y,函数会返回满足条件的元素的坐标。这种用法等价于numpy.nonzero(condition),但返回的坐标类型是tuple,而不是数组。
示例:
import numpy as npcondition = np.array([[True, False], [True, True]])indices = np.where(condition)print(indices) # 输出:((0, 0), (0, 1))
numpy.nonzero的用法
numpy.nonzero(condition)函数返回满足条件的元素的坐标。返回类型是一个包含多个数组的tuple,数组的数量等于输入数组的维度。每个数组表示该维度中非零元素的索引。
示例:
import numpy as npa = np.array([1, 2, 3, 0, 4, 5])non_zero = np.nonzero(a)print(non_zero) # 输出:(array([0, 1, 3, 5]),)
import numpy as npb = np.array([ [1, 2], [3, 4], [0, 0]])non_zero = np.nonzero(b)print(non_zero) # 输出:((0, 0), (0, 1))
import numpy as npc = np.array([ [[1, 2], [3, 4]], [[5, 6], [7, 8]]])non_zero = np.nonzero(c)print(non_zero) # 输出:((0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1))
总结
这些函数在数据处理和分析中非常有用,尤其是在需要根据条件筛选数据时。