【问题标题】:Explain numpy.where [duplicate]解释 numpy.where [重复]
【发布时间】:2017-11-03 01:10:43
【问题描述】:

我正在寻找类似于 list.index(value) 的适用于 numpy 数组的东西。我认为numpy.where 可能会成功,但我不明白它是如何工作的。谁能解释一下

a) 这意味着什么

和 b) 它是否像 list.index(value) 一样工作,但使用 numpy 数组。

这是文档中的文章:

numpy.where(条件[, x, y])

xy 返回元素,具体取决于 条件
如果只给出条件,return condition.nonzero()

参数:条件:array_like, bool

当 True 时,产生 x,否则产生 y。

x, y : array_like, 可选

可供选择的值。 x 和 y 需要具有相同的形状 健康)状况。 返回: out : ndarray 或 ndarray 的元组

如果同时指定 x 和 y,则输出数组包含 x 其中条件为真,元素来自 y 其他地方。要是 给定条件,返回元组 condition.nonzero(),索引 其中条件为真。另见非零,选择

注意事项 如果给定 x 和 y 并且输入数组是一维数组,则 相当于: [xv if c else yv for (c,xv,yv) in zip(条件,x,y)]

【问题讨论】:

  • 这是一个非常相似的问题:stackoverflow.com/questions/432112/…
  • “a) 这意味着什么” - 您是否阅读过您在此处发布的文档中的摘录?
  • @ForceBru 是的,但没有多大帮助。

标签: python numpy


【解决方案1】:

这是什么意思?:

numpy.where 函数将条件作为参数并返回条件为true 的索引

是不是像list.index?:

它返回满足条件的数组的索引很接近,而list.index 将值作为参数,这可以通过array == value 作为条件传递numpy.where 来实现。

例子:

使用数组

a = numpy.array([[1,2,3],
                 [4,5,6],
                 [7,8,9]])

调用numpy.where(a == 4)返回(array([1]), array([0]))

调用numpy.where(a >= 4) 返回(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2])),两个Y 和X 坐标数组(分别),条件为true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多