Python中的标准电源操作(**
)不适用于负功率!当然,我可以用分而治之的方式写出这个公式。但是,我正在检查优化例程的结果,有时功率是负值,有时是正值。这里再次if语句可以做,但我想知道是否有一个workarouns和一个Python库,允许负面公开。 感谢和问候。使用NumPy数组操作数的负指数
3
A
回答
3
你正在使用哪个版本的python?完美对我的作品在Python 2.6,2.7和3.2:
>>> 3**-3 == 1.0/3**3
True
与numpy的1.6.1:
>>> import numpy as np
>>> arr = np.array([1,2,3,4,5], dtype='float32')
>>> arr**-3 == 1/arr**3
array([ True, True, True, True, True], dtype=bool)
1
也许使用与NumPy/SciPy的内置,功率
>>> import numpy as NP
>>> A = 10*NP.random.rand(12).reshape(4, 3)
>>> A
array([[ 5.7 , 5.05, 7.28],
[ 3.61, 9.67, 6.27],
[ 5.29, 2.8 , 0.58],
[ 5.94, 4.9 , 1.68]])
>>> NP.power(A, -2)
array([[ 0.03, 0.04, 0.02],
[ 0.08, 0.01, 0.03],
[ 0.04, 0.13, 2.98],
[ 0.03, 0.04, 0.35]])
0
我以为我遇到同样的事情,但我意识到我没有强迫数组成为一个浮点数。有一次,我做到了,它表现得如我所料。你有可能做了类似的事吗?
>>> import numpy as np
>>> arr = np.array([[1,2,3,4],[8,9,10,11]])
>>> arr
array([[ 1, 2, 3, 4],
[ 8, 9, 10, 11]])
>>> arr ** -1
array([[1, 0, 0, 0],
[0, 0, 0, 0]])
>>> arr ** -1.0
array([[ 1. , 0.5 , 0.33333333, 0.25 ],
[ 0.125 , 0.11111111, 0.1 , 0.09090909]])
3
这可能是一个Python 3事情我使用3.5.1,我相信这是你的错误...
for c in np.arange(-5, 5):
print(10 ** c)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-79-7232b8da64c7> in <module>()
1 for c in np.arange(-5, 5):
----> 2 print(10 ** c)
ValueError: Integers to negative integer powers are not allowed.
它只是改变为浮动和它”我会工作的。
for c in np.arange(-5, 5):
print(10 ** float(c))
1e-05
0.0001
0.001
0.01
0.1
1.0
10.0
100.0
1000.0
10000.0
奇怪的是,它工作在基础蟒蛇3:
for i in range(-5, 5):
print(10 ** i)
1e-05
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
它似乎只是正常工作的Python 2.7.12:
Python 2.7.12 (default, Oct 11 2016, 05:24:00)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> for c in np.arange(-5, 5):
... print(10 ** c)
...
1e-05
0.0001
0.001
0.01
0.1
1
10
100
1000
10000
+0
奇怪...我认为这个ValueError出现在Python 3.5开始。在使用Python 3.4.3进行尝试时,我没有任何问题。不过,我无法在[python 3.5 changelog](https://docs.python.org/3/whatsnew/3.5.html)中找到任何关于此的信息。 – Praveen 2017-03-14 06:24:23
相关问题
- 1. 使用numpy数组元素的操作
- 2. numpy的数组操作
- 3. 使用数组在numpy中操作
- 4. Numpy数组索引操作?
- 5. Python的numpy的数组操作
- 6. numpy数组变化指数
- 7. 对numpy数组的条件操作
- 8. numpy数组的计算/操作
- 9. Python numpy数组合并操作
- 10. 指定一个numpy数组
- 11. 指定顺序numpy数组
- 12. Perl中的数组和负指数
- 13. MATLAB - 如何使用负指数数组绘制一个函数?
- 14. 使用numpy的Python数组
- 15. 如何使用numpy对行数组执行操作?
- 16. Numpy:在最少的操作数中重塑这个数组
- 17. 使用Numpy数组作为查找表
- 18. 使用数组进行负指数的基本计算
- 19. 指定numpy数组的二维数组函数返回值
- 20. 如何使用整数指针操作时确定整数数组的末尾?
- 21. 的Python:用numpy的简单数组操作
- 22. 数组操作
- 23. 数组操作
- 24. 使用numpy数组有效索引numpy数组
- 25. 如何操作numpy数组以用于ESRI的arcpy.da.NumPyArrayToTable
- 26. 使用指针指针数组来操作它指向的指针(C++)
- 27. 如何使用numpy数组与分数?
- 28. NumPy的操作依赖于X/Y指数
- 29. 负指数值?
- 30. 指定numpy结构数组的问题
你的问题不适合我的代码工作:http://ideone.com/MO6EJ我不熟悉_exposant_的概念,但就_exponents_而言,它们是完全有效的。例如。 '2 **(-2)'会给你'0.25'。 – Tadeck 2012-03-27 10:41:48