二维numpy数组的映射对角线

二维numpy数组的映射对角线,numpy,Numpy,是否有任何ufunc能够跨numpy数组的对角线进行映射 如果我有 A = array([[1, 7, 5, 0, 5], [9, 1, 4, 6, 0], [9, 6, 1, 0, 0], [2, 5, 0, 0, 0], [1, 0, 0, 0, 0]]) 聚合函数为max 目标是 B = np.diagnols_ufunc(A, np.max) = array([ 1, -> max([1

是否有任何ufunc能够跨numpy数组的对角线进行映射

如果我有

A = array([[1, 7, 5, 0, 5],
           [9, 1, 4, 6, 0],
           [9, 6, 1, 0, 0],
           [2, 5, 0, 0, 0],
           [1, 0, 0, 0, 0]])
聚合函数为
max

目标是

B = np.diagnols_ufunc(A, np.max)
  = array([ 1,  -> max([1])
            9,  -> max([9, 7])
            6,  -> max([9, 1, 5])
            6,  -> max([2, 6, 4, 0])
            6,  -> max([1, 5, 1, 6, 5])
            ])

这回答了你的问题吗?不可以。即使是
numpy
中的有限对角线函数也假定主对角线具有坐标
(i,i)
(从左上到右下)。如果您真正需要的话,您必须创建一个自定义
numba
函数并尝试创建一个自定义
ufunc
。>这是否回答了您的问题?这可能是一个解决方案,但我需要复制数据,这可能比范围内的I(A.shape[0])的np.max(np.diagonal(np.flipr(A),I)效率要低。>主对角线有坐标。可以使用
flipr
来解决这一问题。但是基于对角线的某种贴图可能仍然不起作用:(