In [2]: a = np.random.random(4)
In [3]: a
Out[3]: array([0.87932117, 0.77583433, 0.82855167, 0.52718255])
In [4]: empty = a[4:]
In [5]: empty
Out[5]: array([], dtype=float64)
In [9]: normal = a[0]
In [10]: normal
Out[10]: 0.879321173826548
In [11]: bigger = np.maximum(empty, normal)
In [12]: bigger
Out[12]: array([], dtype=float64)
我的代码如上所示。我得到一个空数组empty
和一个正规数组normal
,然后我使用np.maximum()
函数来查找数组元素的按元素最大值bigger
。你知道吗
我很好奇我得到的结果是empty
?你知道吗
我已经编辑了题目。正如pm2ring所指出的,我的
normal
只是一个标量。 实际上,当使用空数组与普通数组进行比较时,会导致错误:这似乎是因为
numpy.maximum
没有返回较大的数组,而是按元素进行比较并返回一个数组,每个数组的最大值如下:https://docs.scipy.org/doc/numpy/reference/generated/numpy.maximum.html
因此在您的示例中,由于在
empty
中没有要比较的元素,因此numpy.maximum
返回的正好是一个空数组。你知道吗根据Numpy文档^{} 比较两个数组,并返回一个包含元素最大值的新数组。只有当数组的大小相同,或者一个或两个参数都是标量时,它才起作用。你知道吗
对于空数组,没有什么可比较的,因此函数返回空数组。你知道吗
相关问题 更多 >
编程相关推荐