python 二维矩阵翻转

[Python中矩阵上下左右翻转(np.flip)] 其中,np.flip函数可以用于进行矩阵的上下左右翻转操作,是我们在处理图像、信号、物理模拟等领域时经常使用的工具。在实际工程应用中,我们可以结合其他Python库,例如Pillow、OpenCV等,来实现更加复杂和高级的图像处理任务。总之,作为NumPy库中的一员,np.flip函数为我们提供了极大的方便和灵活性,是学习和掌握数据处理和数值计算必不可少的知识点之一。用中,我们可以结合其他Python库,例如Pillow、OpenCV等,来实现更加复杂和高级的图像处理任务。 阅读详情

二维矩阵翻转

# N * N的二维矩阵 
# 沿上下中线翻转
# 沿左右中线翻转
# 沿-45度对角线翻转
# 沿45度对角线翻转

matrix3 = [
			[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]
		]
matrix1 = [
			[1, 2, 3], 
			[4, 5, 6], 
			[7, 8, 9]
		]
matrix2 = [
		[1, 2, 3, 4], 
		[5, 6, 7, 8], 
		[9, 10, 11, 12], 
		[13, 14, 15, 16]
]


# 沿上下,中线翻转
def sx_zh(matrix):
    length = len(matrix)
    for j in range(length):
        for i in range(length//2):
        	# 根据坐标点找规律并交换位置
            matrix[j][i], matrix[j][length-i-1] = matrix[j][length-i-1], matrix[j][i]  
    return matrix


# 沿左右,中线翻转
def zy_zh(matrix):
    length = len(matrix)
    for j in range(length//2):
        for i in range(length):
        	# 根据坐标点找规律并交换位置
            matrix[j][i], matrix[length-j-1][i] = matrix[length-j-1][i], matrix[j][i]
    return matrix


# 沿45度对角线翻转
def dui_45_xian(matrix):
    length = len(matrix)
    n = length - 1
    m = n
    for j in range(n):
        for i in range(m):
            # 根据坐标点找规律并交换位置
            matrix[j][i], matrix[n-i][n-j] = matrix[n-i][n-j], matrix[j][i]
        m -= 1
    return matrix


# 沿-45度对角线翻转
def fu_dui_45_xian(matrix):
    n = len(matrix)
    m = 1
    for j in range(n):
        for i in range(m, n):
            # 根据坐标点找规律并交换位置
            matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
        m += 1
    return matrix


if __name__ == '__main__':
    print("sx_zh: matrix1", sx_zh(matrix1))
    print("sx_zh: matrix2", sx_zh(matrix2))
    print("sx_zh: matrix3", sx_zh(matrix3))
    print("zy_zh: matrix1", zy_zh(matrix1))
    print("zy_zh: matrix2", zy_zh(matrix2))
    print("zy_zh: matrix3", zy_zh(matrix3))
    print("dui_45_xian: matrix1", dui_45_xian(matrix1))
    print("dui_45_xian: matrix2", dui_45_xian(matrix2))
    print("dui_45_xian: matrix3", dui_45_xian(matrix3))
    print("fu_dui_45_xian: matrix1", fu_dui_45_xian(matrix1))
    print("fu_dui_45_xian: matrix2", fu_dui_45_xian(matrix2))
    print("fu_dui_45_xian: matrix3", fu_dui_45_xian(matrix3))

result:

sx_zh: matrix1 [[3, 2, 1], [6, 5, 4], [9, 8, 7]]
sx_zh: matrix2 [[4, 3, 2, 1], [8, 7, 6, 5], [12, 11, 10, 9], [16, 15, 14, 13]]
sx_zh: matrix3 [[5, 4, 3, 2, 1], [10, 9, 8, 7, 6], [15, 14, 13, 12, 11], [20, 19, 18, 17, 16], [25, 24, 23, 22, 21]]
zy_zh: matrix1 [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
zy_zh: matrix2 [[16, 15, 14, 13], [12, 11, 10, 9], [8, 7, 6, 5], [4, 3, 2, 1]]
zy_zh: matrix3 [[25, 24, 23, 22, 21], [20, 19, 18, 17, 16], [15, 14, 13, 12, 11], [10, 9, 8, 7, 6], [5, 4, 3, 2, 1]]
dui_45_xian: matrix1 [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
dui_45_xian: matrix2 [[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]
dui_45_xian: matrix3 [[1, 6, 11, 16, 21], [2, 7, 12, 17, 22], [3, 8, 13, 18, 23], [4, 9, 14, 19, 24], [5, 10, 15, 20, 25]]
fu_dui_45_xian: matrix1 [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
fu_dui_45_xian: matrix2 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
fu_dui_45_xian: matrix3 [[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]]
Python实现矩阵旋转算法 在计算机图像处理领域,经常需要对矩阵进行旋转操作。本文将介绍如何使用Python实现一个简单的矩阵旋转算法,并附上完整源代码。解决方法是先将矩阵按照主对角线(左上角到右下角)镜像翻转,然后再将每一行逆序。本文介绍的是一个简单的矩阵旋转算法,对于大规模的矩阵来说,可能存在效率问题。有兴趣的读者可以自行搜索相关算法进行优化。至此,我们已经完成了矩阵旋转算法的实现。如果需要逆时针旋转90度,只需要将两个for循环的顺序反过来即可。为需要旋转的矩阵,函数返回值为旋转后的矩阵。Python实现矩阵旋转算法。 阅读详情

相关推荐

Python rotate matrix旋转矩阵算法详解及源码

rotate matrix旋转矩阵算法用于将一个二维矩阵顺时针旋转90度。该算法通过对矩阵进行转置操作,然后再将每一行翻转来实现旋转。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1851

python矩阵翻转

尼古拉斯康康 1562

Verilog实现SPI通信协议驱动设计

线性序列机实现SPI协议

H19981118的博客 6085

反转图像矩阵001

1、描述 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。 反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。 示例 1: 输入: [[1,1,0],[1,0,1],[0,0,0]] 输出: [[1,0,0],[0,1,0],[1,1,1]] 解释: 首先翻转每一行: [[0,1,1],

Tlwhisper的博客 514

Android AudioFlinger(一)——初识AndroidAudio Flinger

AudioFlinger 是 Android 系统中的音频中间层(audio HAL, Audio Hardware Abstraction Layer)的一部分,负责管理音频的混音、播放和音量控制等功能。它充当 Android 应用程序和音频硬件之间的桥梁。

hirezy 1669

图形引擎实战:镭射效果制作分享

该方案的优势1.遵循物理的2.可以使用少量的参数去调控镭射的效果。计算相对简单,缺点仍是颜色不能够自定义,还有一种常见的方案是采样一张镭射贴图来模拟,好处是颜色可以自定义同时性能上还很高效没有复杂的公式计算。我查阅了网上普遍的方案,常见的做法是制作一个Ramp图生成工具,然后将生成好的ramp图赋给材质。这两个方案的好处是美术同学可以手动的去控制镭射的颜色。最后就是Shader中对Ramp图的采样的部分,Ramp图的UV坐标是使用fresnel作为Ramp的U轴坐标,0.5作为V轴坐标。

qq_41166022的博客 1353

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

Python对二维矩阵沿主对角线(次对角线)翻转变换代码实现 目录Python对二维矩阵沿主对角线(次对角线)翻转变换代码实现1. 原始数据以及图示2. 主对角线翻转及图示3. 次对角线翻转结果4. 完整代码,如有疑问,欢迎评论区交流 1. 原始数据以及图示 为了展现代码的效果,这里选取了一个3*3的数组,分别是0-8的值,便于区分。为了直观展示数据,这里使用了热力图用颜色区分数值大小。关于如何绘制,参见:https://blog.youkuaiyun.com/zzu_Flyer/article/details/109

zzu_Flyer的博客 6253

电机控制必看!SVPWM谐波优化:5段式与7段式全参数对比测试

本文通过实测数据,对比分析了电机控制中5段式与7段式SVPWM控制算法的谐波性能。实验表明,7段式SVPWM在电流波形质量(THD)和低速性能上更优,而5段式SVPWM则在开关损耗和效率方面表现突出。文章为工程师在不同应用场景(如对噪音、效率或动态响应的侧重)下的算法选型提供了清晰的依据和实用的工程指南。

weixin_28331555的博客 178

【LeetCode刷题】48. 旋转图像

48. 旋转图像。给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。...

weixin_48323589的博客 381

OpenNARS开源通用人工智能系统:非公理推理引擎实践指南

人工智能系统从基于规则推理到深度学习模型,始终围绕如何让机器具备智能决策能力。传统逻辑系统依赖公理和完备知识,而现实世界智能体需要在资源受限、信息不完备环境下进行推理。非公理推理系统(NARS)通过动态真值计算和信念修正机制,实现了在不确定性环境下的自主学习和决策。这种推理引擎的技术价值在于模拟人类思维的核心机制——归纳、演绎和学习,为通用人工智能(AGI)提供了不同于数据驱动的新路径。在应用场景上,NARS适用于游戏NPC决策、复杂系统故障诊断和自适应机器人控制等领域。OpenNARS作为NARS理论的开

weixin_31961675的博客 408

Linux性能调优之CPU时间分布(亲和性、带宽、权重)配置

带宽权重亲和性进程级别Cgroup-v2服务级别systyemd我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼·黑塞《德米安》

山河已无恙 1714

leetcode-48. 旋转图像

旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。使用另一个矩阵来旋转图像。

曼巴的博客 268

Claude Code 从入门到精通,通过实战项目穿插 Agent Skills、MCP、Hooks、子代理、插件等十五个知识点

本文介绍了Claude Code的高级使用技巧,通过一个个人简历网站实战项目,详细讲解了15个核心知识点。主要内容包括:三种权限模式(默认/编辑/计划)的使用与切换;历史会话管理(/resume、/rename、/clear命令);会话回滚功能(/rewind);以及危险参数--dangerously-skip-permissions的注意事项。文章还演示了如何通过计划模式拆分代码文件,并强调了在复杂任务中仔细检查规划步骤的重要性。这些技巧能帮助开发者更高效地使用Claude Code完成项目开发。

1788

python每日一题 题目练习(方法1)

对于3*3的来说 只需要进行两轮(两个元素起头) 对于 4*4的来说 只需要进行4轮(4个元素起头) 那么就是2个元素和四个元素 那么行的话就是 n//2 列的话就是(n+1)//2。第一行第一个 第一行的第二个 第二行的第一个 第二行的第二个 所以就是 n//2 (n+1)//2(肯定不能想着是第一行的第三个啊 肯定从最开始的行和最开始的列开始找初始的元素)你只要确定这四个位置是咋变的 那么其他也需要进行相同变换的元素 遵循的是一样的规律。对于四的来说 是第一行的第一个元素和第二个元素。

m0_62653520的博客 942

【CASS精品教程】013:CASS9.1生成标准图幅案例教程

在CASS中,可以很方便的生成标准图幅,如50*50。本文演示cass中,根据测区范围标准图幅生成过程。

智慧空间实验室 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LeetCode-48. 旋转图像【数组 数学 矩阵】

输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。给定一个 n × n 的二维矩阵 matrix 表示一个图像。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]空间复杂度:O(1)

zik的博客 1516

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【力扣日记】048 旋转图像 | 面试题01.07 旋转矩阵

题目描述: 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]], 原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]] 来源:力扣(Lee...

Heart_for_Ling的博客 445

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

LeetCode 48 旋转图像 NC18 顺时针旋转矩阵

给定一个 n×n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2...

麦格芬230的博客 293

java算法训练------ LeetCode 精选 TOP 面试题------旋转图像、旋转数组

旋转图像 给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] 输出:[[15,13

龙小虬的博客 201

#48 Rotate Image——Top 100 Liked Questions

You are given annxn2D matrix representing an image. Rotate the image by 90 degrees (clockwise). Note: You have to rotate the imagein-place, which means you have to modify the input 2D matrix d...

suixuejie的博客 125

python力扣48.旋转图像

一种完全由我原创的笨方法:通过观察发现,如果将旋转后的矩阵每一列翻转,那么原矩阵的[ i ][ j ]位置元素在旋转后会出现在新矩阵的[ j ][ i ]位置。也就是说,当你修改某一行时,所有行都会受到影响。输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]。

m0_46330606的博客 572

832. 翻转图像

832. 翻转图像 题号:力扣832 知识点:矩阵 目标完成度:8/150 总结 题干: 思路: 1.第一个操作:水平翻转 image[i] = image[i][::-1] 2.第二个操作:反转(0–>1, 1–>0) image[i][j] = int(not(image[i][j])) class Solution: def flipAndInvertImage(self, image: List[List[int]]) -> List[List[int]]:

weixin_44742084的博客 221

【算法leetcode】861. 翻转矩阵后的得分(多语言实现)

有一个二维矩阵 A 其中每个元素的值为 0 或 1 。 移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。 在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。 返回尽可能高的分数。 ...

二当家的白帽子 377

【LeetCode】48. 旋转图像【两次翻转】

题目链接:https://leetcode-cn.com/problems/rotate-image/ 题目描述 给定一个 n×n 的二维矩阵matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 测试样例 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]] 示例 2: 输入:m...

一定要站在自己热爱的生活里闪闪发光 1万+

算法题练习:旋转图像

这段代码首先通过两层循环交换矩阵的元素来实现转置,然后再次遍历每一行并使用 reverse() 方法将其反转。这样就实现了原地顺时针旋转 90 度的效果。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。首先,将矩阵沿主对角线翻转(即交换 matrix[i][j] 和 matrix[j][i])。然后,将每一行反转。

weixin_47659945的博客 494
上一篇: 什么是SDK
下一篇: python 两数之和
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一叶知秋的BLOG

创作不易 请多多关注

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值