尝试自学一些python,我对文档中的where函数的作用非常困惑。有人可以一步一步地从下面的文档中解释一下这个例子吗?
>>> np.where([[True, False], [True, True]],
... [[1, 2], [3, 4]],
... [[9, 8], [7, 6]])
array([[1, 8],
[3, 4]])
答案 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]]
值为[[1, 2], [3, 4]]
。
值为[[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
的第三个参数中的元素。