【问题标题】:Multiplying a scaler to a matrix in python在python中将缩放器乘以矩阵
【发布时间】:2021-05-10 19:30:17
【问题描述】:

给我

>>> scalar = 3
>>> A = [[1,0,0],[0,1,0],[0,0,1]]
>>> D = []

我应该做的是将所有 A 乘以定标器,并将结果存储为 D。我该怎么做?

【问题讨论】:

    标签: python matrix range multiplication


    【解决方案1】:

    使用 numpy。

    >>> a = np.identity(3)
    >>> a
    array([[1., 0., 0.],
           [0., 1., 0.],
           [0., 0., 1.]])
    >>> D = a * 3
    >>> D
    array([[3., 0., 0.],
           [0., 3., 0.],
           [0., 0., 3.]])
    >>>
    

    【讨论】:

      【解决方案2】:

      对于矩阵,你最好使用 numpy:

      import numpy as np
      
      scalar = 3
      A = np.array([[1,0,0],[0,1,0],[0,0,1]])
      D = scalar * A
      

      print(D) 然后返回

      array([[3, 0, 0],
             [0, 3, 0],
             [0, 0, 3]])
      

      或者,如果您再次需要 Python 列表,请使用返回 [[3, 0, 0], [0, 3, 0], [0, 0, 3]]D.tolist()

      【讨论】:

        【解决方案3】:

        如果你想把 A 放大三倍,就这样做:

        scalar = 3
        A = [[1,0,0],[0,1,0],[0,0,1]]
        D = scalar * A
        # D = [[1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 0, 0], [0, 1, 0], [0, 0, 1]]
        

        如果您尝试将 元素 乘以三,请查看其他答案,或尝试以下操作:

        scalar = 3
        A = [[1,0,0],[0,1,0],[0,0,1]]
        D = [[ele * scalar for ele in sub] for sub in A]
        # D = [[3, 0, 0], [0, 3, 0], [0, 0, 3]]
        

        【讨论】:

          【解决方案4】:

          如果您的原始数组不是身份;你也可以在 numpy 中使用基本缩放来做到这一点......

          import numpy as np
          scalar = 3
          A = [[1,0,0],[0,1,0],[0,0,1]]
          numpyArray = np.array(A)
          numpyArray = numpyArray*scalar
          newArray = numpyArray.tolist()
          print(*newArray)
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-03-15
            • 1970-01-01
            • 1970-01-01
            • 2016-10-18
            • 2017-04-04
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多