python顺时针打印矩阵

给定一个矩阵数据,顺时针将数据打印出来。 

import numpy as np
import pandas as pd

#生成一个10*8的矩阵
data = np.arange(1, 81).reshape((10,8))
df = pd.DataFrame(data)
while True:
    #判断行或者列是否为空,为空则退出循环
    if len(df.index) == 0 or len(df.columns) == 0:
        break
    #输出第一行
    [print(i, end=' ') for i in df.iloc[:1].values[0]]
    #删除第一行
    df.drop(index=df.index[0], inplace=True)
    if len(df.index)==0 or len(df.columns)==0:
        break
    #输出最后一列
    [print(i, end=' ') for i in [ j[0] for j in df.iloc[:,-1:].values]]
    #删除最后一列
    df.drop(columns=df.columns[len(df.columns)-1], inplace=True)
    if len(df.index) == 0 or len(df.columns) == 0:
        break
    #输出最后一行
    [print(i, end=' ') for i in sorted(df.iloc[-1:].values[0], reverse=True)]
    #删除最后一行
    df.drop(index=df.index[len(df.index)-1], inplace=True)
    if len(df.index) == 0 or len(df.columns) == 0:
        break
    #输出第一列
    [print(i, end=' ') for i in sorted([j[0] for j in df.iloc[:, :1].values], reverse=True)]
    #删除第一列
    df.drop(columns=df.columns[0], inplace=True)
    print()

 

你可能感兴趣的:(Python)