【问题标题】:How to mutliply a number with negative power in python如何在python中将一个数字与负幂相乘
【发布时间】:2020-03-18 20:03:32
【问题描述】:

当我尝试将它乘以一个负整数时,它只会返回一个错误

我用:

A = np.array([[1,2,0], [2,4,-2], [0,-2,3]])

【问题讨论】:

  • 你确定 A 是一个数字吗?
  • 它引用了一个矩阵
  • 你确定这不是逆矩阵吗?
  • 那么您实际上是在问如何反转矩阵吗?
  • 从照片中我们可以看出这是作业,你需要矩阵 A 的逆矩阵——看我的答案

标签: python math


【解决方案1】:

从截图可以看出这是作业。

所以它要求 逆矩阵。 在数学中这写为 A^(-1)

import numpy as np

A = np.array([[1,2,0], [2,4,-2], [0,-2,3]])
np.linalg.inv(A)
array([[-2.  ,  1.5 ,  1.  ],
       [ 1.5 , -0.75, -0.5 ],
       [ 1.  , -0.5 ,  0.  ]])

【讨论】:

    【解决方案2】:

    在 numpy 中,您不能将整数乘以负整数幂(阅读 this)。

    在 python 中,** 操作符返回值没有任何错误。

    In [6]: A = 20                                                                                                                                                                          
    
    In [7]: print(A ** -1)                                                                                                                                                                  
    0.05
    

    你也可以使用pow()

    In [1]: A = 20
    
    In [2]: pow(20, -1)
    Out[2]: 0.05
    

    【讨论】:

      【解决方案3】:

      如果您使用矩阵,最好确保它们是 numpy.matrix 类型的实例,而不是更通用的 numpy.ndarray

      import numpy as np
      M = np.matrix([[ ... ]])
      

      要将现有的通用数组转换为矩阵,您还可以将其传递给np.asmatrix()

      一旦你有一个matrix 实例M,获得逆向的一种方法是M.I

      为避免“不允许整数”问题,请确保矩阵的 dtype 是浮点数,而不是整数(在对 matrix()asmatrix() 的调用中指定 dtype=float

      【讨论】:

      【解决方案4】:

      将幂作为负值插入假设另一个变量并将其命名为“pow”并分配该负值。 现在将下面的代码放入您的代码中。

      pow = -3
      value = 5**pow
      print(value)
      

      执行代码,你会看到结果。 希望对您有所帮助...???

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 1970-01-01
        • 1970-01-01
        • 2015-08-01
        相关资源
        最近更新 更多