我正在调试由离开组织并碰到一行的人编写的代码,该代码使用np.less_equal.outer
和np.greater_equal.outer
函数。我知道np.outer创建两个一维数组的笛卡尔叉积并创建两个数组,而np.less_equal比较两个数组的元素并返回true或false。有人可以解释一下此组合表格如何工作。
谢谢!
答案 0 :(得分:0)
less_equal
和greater_equal
是称为numpy
的{{1}}函数的特殊类型,因为它们具有可扩展的功能,包括ufunc
,{{1} }和accumulate
。
在这种情况下,ufunc.outer
扩展了功能,使其与外部乘积相似工作,但是实际的外部乘积将为at
,但其作用大于或小于比较。
因此,您将获得一个二维数组,该数组对应于第一个数组的每个元素,以及它们是否大于或小于第二个数组中的每个元素。
outer
答案 1 :(得分:0)
在documentation中,对于一维数组A
和B
,操作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])
这是结果的数学表示形式:
答案 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],
)
希望有帮助。