【问题标题】:how can I calc pow of fractions or nth root square in numpy?如何在 numpy 中计算分数的 pow 或 n 次方根?
【发布时间】:2014-10-21 15:00:00
【问题描述】:

我正在尝试计算一个值的 8 次方根或其 ^1/8,但 numpy 总是返回错误的值

temp = 141.18
h2 = temp ** (1/8)
h2_ = np.power(temp, (1/8))

我的输出总是 1.0 。 我也尝试过方形命令。 我需要使用 numpy,我在 mycode 中使用了其他 numpy 数组,只是为了保持兼容。

【问题讨论】:

  • 也许你可以试试1./8.?!!

标签: python-2.7 numpy pow


【解决方案1】:
>>> 1/8
0
>>> 1./8
0.125

当然,任何 0 次方的结果都是 1。

【讨论】:

    【解决方案2】:

    了解数字塔。

    规则 1:给定两个相同类型的操作数,结果将具有该类型。

    例如int / int = int

    temp**(1/8) 没有给出 temp 的 8 次根,因为:

    >>>1/8
    0
    

    规则2:如果操作数混合,其中一个将被强制上数字塔:整数-->有理-->浮点-->复数。

    例如浮点数 / int = 浮点数

    >>>1./8 # 1. is a float 
    0.125
    

    注意:在某些情况下,这些规则不适用于真正的除法/和楼层除法 // 但我并不完全理解它们。请参阅link

    “他们已经完成了你知道的研究。它有 60% 的时间......每次都有效。” - 布莱恩·范塔纳

    陷阱:在 OP 问题中,表达式 temp**(1/8) 由混合操作数组成(temp 是浮点数),那么为什么 (1/8) 不是浮点数?

    根据 BODMAS/BIDMAS 计算操作数,因此首先计算 (1/8),结果表达式变为 temp**0,此时 0 被强制为浮点数。

    任何积极的intfloat 的力量0.01.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2012-01-19
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-29
      • 2017-04-30
      相关资源
      最近更新 更多