二维numpy数组的映射对角线
是否有任何ufunc能够跨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
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
来解决这一问题。但是基于对角线的某种贴图可能仍然不起作用:(