输入整数n,生成元素为2位数之内的n×n的初始矩阵并输出,对初始矩阵分别沿主对角线和次对角线翻转后输出

输入整数n,生成元素为2位数之内的n×n的初始矩阵并输出,对初始矩阵分别沿主对角线和次对角线翻转后输出

import random
n=int(input())
a=[]
for i in range(n):
    l=[]
    for j in range(n):
        l.append(random.randint(0,99))
    a.append(l)
for i in range(n):
    for j in range(n):
        print(a[i][j],end=' ')
    print()
print('主对角线反转:')
for i in range(n):
    for j in range(n):
        print(a[j][i],end=' ')
    print()
print('次对角线反转:')
for i in range(n):
    for j in range(n):
        print(a[n-j-1][n-i-1],end=' ')
    print()

import numpy as np
n = int(input())
# 生成元素为2位数之内的n×n的初始矩阵并输出
a = np.random.randint(10,99,(n,n))
print(a)

# 初始矩阵分别沿主对角线
def fanzhuan_zhu(wind_array, nx):
    for i in range(nx):
        for j in range(i, nx - i):
            tmp = wind_array[i, j]
            wind_array[i, j] = wind_array[j, i]
            wind_array[j, i] = tmp
            j = j + 1
        i = i + 1
    return wind_array
print(fanzhuan_zhu(a, n))

# 初始矩阵分别沿次对角线翻转
def fanzhuan_fu(wind_array, nx):
    for i in range(nx - 1):
        for j in range(nx - 1 - i):
            tmp = wind_array[i, j]
            wind_array[i, j] = wind_array[nx - j - 1, nx - i - 1]
            wind_array[nx - j - 1, nx - i - 1] = tmp
            j = j + 1
        i = i + 1
    return wind_array
print(fanzhuan_fu(a, n))

img

import numpy as np
import pandas as pd
n = int(input())
data = np.array(np.random.randint(0,100,size=(n,n)))  # 不包含100
print(data)
# 沿对角线翻转
print(data.T)
# 沿副对角线翻转
for i in range(n - 1):
    for j in range(n - 1 - i):
        tmp = data[i, j]
        data[i, j] = data[n - j - 1, n - i - 1]
        data[n - j - 1, n - i - 1] = tmp
print(data)

运行结果:

img

如果对你有帮助,帮忙采纳一下!