1
Amy 原创整理|资料核验:2026-11-03
np.diagonal的默认参数是axis1=0、axis2=1。二维矩阵用起来直观,但如果数组形状是“批次数、行、列”,默认前两轴就未必是你想取对角线的矩阵轴。
【Amy教学示例】令a=np.arange(18).reshape(2,3,3)。调用np.diagonal(a, axis1=-2, axis2=-1),会得到两行对角线:[0,4,8]和[9,13,17]。这里显式选择最后两轴,保留了批次维度。
官方说明,输出形状的规则是移除选中的两个轴,再把对角线长度作为最后一维加入。Amy建议:处理批量图像、协方差矩阵或其他张量时,先写明每个轴的含义,再指定轴参数;不要只因二维例子运行正确,就把默认调用直接搬到多维数据。
官方来源:
https://numpy.org/doc/stable/reference/generated/numpy.diagonal.html