当前位置:   article > 正文

Python对二维矩阵沿主对角线(次对角线)翻转变换代码实现_python array沿对角线翻转

python array沿对角线翻转

Python对二维数组(矩阵)沿主对角线(次对角线)翻转变换代码实现

1. 原始数据以及图示

为了展现代码的效果,这里选取了一个3*3的数组,分别是0-8的值,便于区分。为了直观展示数据,这里使用了热力图用颜色区分数值大小。关于如何绘制,参见:https://blog.csdn.net/zzu_Flyer/article/details/109309082

原始矩阵如下:
在这里插入图片描述

2. 主对角线翻转及图示

在这里插入图片描述

3. 次对角线(副对角线)翻转结果

在这里插入图片描述

4. 完整代码,如有疑问,欢迎评论区交流

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
# 显示中文字体
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
# n数组维度
n = 3
my_array = np.zeros((n, n))
# 随机生成原始数组
s = 0
for i in np.arange(n):
    for j in np.arange(n):
        print(i, j)
        my_array[i, j] = s
        s = s + 1
print(my_array)


# 沿主对角线数组翻转
def fanzhuan_zhu(wind_array, nx):
    for i in range(nx):
        # print('i', i)
        for j in range(i, nx - i):
            print('--',i, j)
            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


# 沿副对角线数组翻转
def fanzhuan_fu(wind_array, nx):
    for i in range(nx - 1):
        for j in range(nx - 1 - i):
            print(i, j)
            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

# 绘制热力图
def show(wind_array, title):
    # 绘制热力图
    h = sns.heatmap(
        data=wind_array,  # 指定绘图数据
        cmap='YlGnBu',  # 指定填充色'PuBuGn',,jet
        # center=1,
        linewidths=.1,  # 设置每个单元格边框的宽度
        annot=True,  # 显示数值
        cbar=True,
        fmt='.1f',# 以科学计算法显示数据
    )
    plt.title(title, fontsize=15)
    plt.tight_layout()

    # 显示图形
    plt.show()


show(my_array,'原始数组')
zhu = fanzhuan_zhu(my_array, n)
print('主对角线翻转',zhu)

show(zhu, '主对角线翻转后')

fu = fanzhuan_zhu(my_array, n)
print('副对角线翻转', fu)
show(fu, '副对角线翻转后')```

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/201712
推荐阅读
相关标签
  

闽ICP备14008679号