python 旋转矩阵(array)

作者: 松山剑客 | 来源:发表于2018-08-28 10:16 被阅读1次

    python中将array类型的矩阵逆时针旋转90°,即:
    \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right] \rightarrow \left[ \begin{matrix} 3 & 6 & 9\\ 2 & 5 & 8 \\ 1 & 4 & 7 \end{matrix} \right]
    代码为:

    import numpy as np
    
    
    def rotate(array):
        temp = np.zeros_like(array.transpose())
        for j in range(len(array)):
            for i in range(len(array[0])):
                temp[i][j] = array[j][len(array[0])-i-1]
        return temp
    
    if __name__ =='__main__':
        a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
        b = rotate(a)
        print(a,b)
    

    PS:

    1. numpyarray一旦定义,其类型即为确定的int32 或者float64。定义后无法通过赋值改变类型,如
    a = numpy.array([1,2,3])
    print(a)
    a[0] = 2.5
    print(a)
    

    可能我们会认为第二个输出为[2.5,2,3],但输出其实是[2,2,3],这是因为一开始a的数据类型就是int32,使用dtype可查看array类型。

    array的类型

    这一点需要注意,和我们传统认为的python是弱类型不同


    弱类型
    1. array转换数据类型 float -> int
    array.astype(np.int32)
    
    Out[10]: array([1, 2, 3, 4, 5], dtype=int32)
    

    相关文章

      网友评论

        本文标题:python 旋转矩阵(array)

        本文链接:https://www.haomeiwen.com/subject/pscfwftx.html