理解numpy所在的功能

时间:2018-02-17 16:22:37

标签: python numpy

我一直在努力了解numpy哪里有功能但没有到达任何地方。我可以理解简单的比较,比如值> otherValue,但是这个例子,从文档中看起来并不是更清楚。

我很欣赏这个易于理解的故障。感谢您提供的任何帮助:

>>> np.where([[True, False], [True, True]],
...          [[1, 2], [3, 4]],
...          [[9, 8], [7, 6]])
array([[1, 8],
       [3, 4]])

2 个答案:

答案 0 :(得分:1)

where()函数接受3个参数。条件,xy。正如documentation中所述,如果同时指定了xy,则输出数组包含x的元素,其中条件为True ,以及y其他地方的元素。

在第一行的情况下,它从1中选择x,从8选择y(因为为假),从第二行选择,因为两者都是True,它会选择它们来自x

np.where([[True, False], [True, True]],
         [[1,    2],     [3,    4]],
         [[9,    8],     [7,    6]])

   array([[1, 8],
          [3, 4]])

答案 1 :(得分:0)

我认为我们可以使事情更简单,并专注于np.where而不是嵌套列表。

np.where([True, False, True, True],
         [1,    2,     3,    4],
         [9,    8,     7,    6])
Out[4]: array([1, 8, 3, 4])

我认为您可以从这个简单的等价物中得到启示。简而言之,它只是从条件为True的第一个列表([1, 2, 3, 4])和条件为False的第二个列表([9, 8, 7, 6])中选择相应的元素。

第一个条件为True,然后我们选择1(从对应位置的第一个列表中选择),第二个条件为False,我们选择8(从对应位置的第二个列表中选择),依此类推。