Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何计算分数或N次方根的功率?_Python 2.7_Numpy_Pow - Fatal编程技术网

Python 2.7 如何计算分数或N次方根的功率?

Python 2.7 如何计算分数或N次方根的功率?,python-2.7,numpy,pow,Python 2.7,Numpy,Pow,我试图计算一个值的第8个平方根或其^1/8,但numpy总是返回错误的值 temp = 141.18 h2 = temp ** (1/8) h2_ = np.power(temp, (1/8)) 我的输出总是1.0。 我也试过方形命令。 我需要使用numpy,我在mycode中使用其他numpy数组,只是为了保持兼容 >>> 1/8 0 >>> 1./8 0.125 当然,任何0次方的结果都是1。了解数字塔 规则1:给定两个相同类型的操作数,结果将具有该类

我试图计算一个值的第8个平方根或其^1/8,但numpy总是返回错误的值

temp = 141.18
h2 = temp ** (1/8)
h2_ = np.power(temp, (1/8))
我的输出总是1.0。 我也试过方形命令。 我需要使用numpy,我在mycode中使用其他numpy数组,只是为了保持兼容

>>> 1/8
0
>>> 1./8
0.125

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

了解数字塔

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

e、 g.int/int=int

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

>>>1/8
0
规则2:如果操作数混合,其中一个操作数将强制上升到数字塔:整数-->有理-->浮点-->复数

e、 g.浮点数/int=浮点数

>>>1./8 # 1. is a float 
0.125
注意:在某些情况下,这些规则可能不适用于真正的分区/和楼层分区//但我并不完全理解它们。看

“他们做过研究,你知道。它60%的时间都有效……每次都有效。”-布莱恩·范塔纳

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

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


0.0
的任何正
int
float
都是
1.0

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