有人可以解释一下“ np.less_equal.outer(range(1,18),range(1,13))

时间:2019-06-18 09:46:53

标签: python numpy

我正在调试由离开组织并碰到一行的人编写的代码,该代码使用np.less_equal.outernp.greater_equal.outer函数。我知道np.outer创建两个一维数组的笛卡尔叉积并创建两个数组,而np.less_equal比较两个数组的元素并返回true或false。有人可以解释一下此组合表格如何工作。 谢谢!

3 个答案:

答案 0 :(得分:0)

less_equalgreater_equal是称为numpy的{​​{1}}函数的特殊类型,因为它们具有可扩展的功能,包括ufunc,{{1} }和accumulate

在这种情况下,ufunc.outer扩展了功能,使其与外部乘积相似工作,但是实际的外部乘积将为at,但其作用大于或小于比较。

因此,您将获得一个二维数组,该数组对应于第一个数组的每个元素,以及它们是否大于或小于第二个数组中的每个元素。

outer

答案 1 :(得分:0)

documentation中,对于一维数组AB,操作np.less_equal.outer(A, B)等效于:

m = len(A)
n = len(B)
r = empty(m, n)

for i in range(m):
    for j in range(n):
        r[i,j] = (A[i] <= B[j])

这是结果的数学表示形式:

enter image description here

答案 2 :(得分:-1)

这是一个示例:

np.less_equal([4, 2, 1], [2, 2, 2])
array([False,  True,  True])
np.greater_equal([4, 2, 1], [2, 2, 2])
array([ True, True, False], dtype=bool)

首先是外部函数

np.outer(range(1,2), range(1,3))
array([[1 2 3],
       [2 4 6],
       )

希望有帮助。