python - 90° 矩阵旋转 Python
问题描述
我不明白为什么原始 Matrix 的检索值不是一个好值。例如,Matrix[0,3] 的值应该给出 3 但给出 0,这样我就无法获得正确的 90° 矩阵旋转:
import numpy as np
x = np.matrix(np.arange(16).reshape((4,4)))
print(x)
def rotate_90(matrix):
rot_Mat = matrix
len = matrix.shape[0]
# len_range = range(len)
# rev_range = reversed(len_range)
for i in range(0, len):
for j in range(0, len):
value = matrix[i,j]
print(i , j , value)
rot_Mat[j,len - i -1] = value
print(rot_Mat)
rotate_90(x)
解决方案
rot_Mat = matrix
这不会创建新数组。rot_Mat
与 是相同的数组matrix
,因此您在读取它们时会覆盖这些值。
要创建具有相同形状的新empty_like
数组,请使用:
rot_Mat = np.empty_like(matrix)
推荐阅读
- java - Docker 上的弹性 APM 堆栈
- c++ - 多线程 RayTracer 使用平面生成奇怪的伪影
- c++ - C++ 访问私有类成员
- gremlin - gremlin 会话何时更好?
- javascript - 在初始化期间使用 $rootScope.$emit 在控制器之间传递数据
- c++ - 无法分离标头类。我得到“没有命名类型”
- python - Gitlab-runner CI 计时问题
- .htaccess - .htaccess 重定向在目标 url 中保留方括号
- php - HTTP 到 HTTPS 重定向问题 .htaccess
- javascript - 为什么我会在 HTML 和 CSS 中使用类而不是属性?