Numpy来自docs的语法

时间:2017-08-22 07:11:24

标签: python numpy

尝试自学一些python,我对文档中的where函数的作用非常困惑。有人可以一步一步地从下面的文档中解释一下这个例子吗?

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

3 个答案:

答案 0 :(得分:2)

基本语法为np.where(x, a, b)只要x为真,请取a的该元素,如果它为假,则取b元素。它等同于:

  

x =。 。 [[1,0],[1,1]]),而不是x = [[0,1],[0,0]]

     

数组([[1, 2 ],[3,4]])+数组([[ 7 ,8],[ 9 ,<罢工> 10 ]])

     

array([[1,0],[3,4]])+ array([[0,8],[0,0]])= array([[1,8],[3,4] ]])

答案 1 :(得分:1)

基本上如下使用:

np.where(condition, value if condition is True, value if condition is False)

在这种情况下:

条件为[[True, False], [True, True]]

如果条件为True,则

值为[[1, 2], [3, 4]]

如果条件为False,则

值为[[9, 8], [7, 6]]

数组的最终结果([[1,8],[3,4]])等于“条件为真时的值”中的数组,除了条件为False的一个位置。在这种情况下,8的值来自第二个数组。

答案 2 :(得分:1)

我认为当您添加换行符以将输入排列为矩阵时,会变得非常清楚:

np.where( # First argument
         [[True, False], 
          [True, True]],
          # Second argument
          [[1, 2], 
           [3, 4]],
          # Third argument
          [[9, 8], 
           [7, 6]])

您可以将第一个参数视为一个掩码,用于确定应从以下两个输入元素中选择哪个元素。

结果

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

包含掩码为True的第二个参数中的元素和来自False的第三个参数中的元素。