如何使用Python的NumPy旋转二维数组?实操问题求助
二维数组旋转解决方案
从输入输出的结构来看,你需要的是顺时针旋转90度的二维数组操作,你当前用切片相加的方式完全不符合旋转逻辑,自然无法得到正确结果。
Pandas DataFrame旋转实现
如果要将整个DataFrame顺时针旋转90度,直接通过转置+行反转即可实现:
import pandas as pd df = pd.read_csv("/content/pipe2.csv") # 顺时针旋转90度 rotated_df = df.T.iloc[::-1] # 同步到相关场景只需复用rotated_df对象即可,比如赋值给其他依赖变量 # related_scene_data = rotated_df.copy()
自定义区域旋转(针对你代码中的切片区域)
你原代码里的iloc[6:10]和iloc[13:20]行数不匹配(4行 vs 7行),这本身就会导致相加结果出现大量NaN,而且这不是旋转的正确操作。如果只需要处理指定行的子区域,示例如下:
import pandas as pd df = pd.read_csv("/content/pipe2.csv") # 提取同维度的目标子区域(示例为第6-9行的所有列) sub_df = df.iloc[6:10, :] # 旋转子区域 rotated_sub = sub_df.T.iloc[::-1] # 将旋转后的子区域同步回原DataFrame或其他场景,需保证维度匹配
原代码错误点
- 维度不匹配:
iloc[6:10]取4行,iloc[13:20]取7行,索引对齐后会产生大量缺失值 - 逻辑错误:数值相加不是二维数组旋转的正确方式,旋转需要对行列进行重组而非数值运算
内容的提问来源于stack exchange,提问作者rohin
相关产品推荐
相关产品推荐

