我有一个 numpy 数组:
A = np.array([8, 2, 33, 4, 3, 6])
Run Code Online (Sandbox Code Playgroud)
我想要的是创建另一个数组 B,其中每个元素都是 A 中 2 个连续对的成对最大值,所以我得到:
B = np.array([8, 33, 33, 4, 6])
Run Code Online (Sandbox Code Playgroud)
关于如何实施的任何想法?
关于如何为超过 2 个元素实现这一点的任何想法?(同样的事情,但对于连续的 n 个元素)
答案给了我解决这个问题的方法,但是对于 n 大小的窗口情况,是否有更有效的方法不需要循环?
事实证明,该问题等同于询问如何对具有大小为 n 的窗口的列表执行 1d 最大池化。有谁知道如何有效地实现这一点?
使用numpy.maximum函数我可以在 python 中获取两个数组的元素最大值。
例如:
import numpy as np
a = [1,2,3]
b = [2,3,1]
print(np.maximum(a, b))
Run Code Online (Sandbox Code Playgroud)
结果是:[2 3 3]
如何对三个、四个或 n 个数组执行相同操作?
例如,对于以下代码:
import numpy as np
a = [1,2,3]
b = [2,3,1]
c = [3,2,1]
Run Code Online (Sandbox Code Playgroud)
我想要一个函数返回[3 3 3]