import numpy,pandas
#对称交换矩阵指定行列数据
# row  List [开始行,结束行)
# line List [开始列,结束列)
def swapData(row, line, n, data):
    i = row[0]
    while (i < row[1]):
        j = line[0]
        while (j < line[1]):
            tmp = data.loc[i][j]
            data.loc[i][j] = data.loc[4 * n - 1 - i][4 * n - 1 - j]
            data.loc[4 * n - 1 - i][4 * n - 1 - j] = tmp
            j = j + 1
        i = i + 1
    return data
#对4N类型的魔方矩阵
def magicN(n):
    m = 4 * n
    data = pandas.DataFrame(numpy.arange(m * m).reshape(m, m)) + 1
    #头部行和尾部行的数据交换
    data = swapData([0, n], [n, 3 * n], n, data)
    #左侧列和右侧列的数据交换
    data = swapData([n, 3 * n], [0, n], n, data)
    #结果数据
    print(data)
    #结果行的总和
    print(data.sum())
    #结果列的总和
    print(data.sum(axis=1))
magicN(2)