python教程,numpy如何做乘方开方操作?求N次方
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文针对ndarray
类型变量做平方或者开方操作,对应的功能必然来自于numpy
了。本文的主角是np.square()
和np.sqrt()
,它们传递普通数字类型参数的时候,就相当于math.sqrt()
或者pow(s,2)
了。如果传递的是array-like
类型参数,才算是回归本心。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码经验总结。本文测试环境:win10
,python@3.11.0
,numpy@1.24.2
。注意:本文的主角np.square()
和np.sqrt()
,支持传递int
/float
/list
/tuple
/ndarray
,就是不支持传递set
。难道是因为set
的天然去重无序的特性?
前文回顾
乘方/平方/二次方/二次幂/二次指数,这都说的是一回事,为啥这么多名字。对于普通的int
或者float
数值,如果做乘方或者开方操作,可以使用pow()
函数,参考文章:
np.square()乘方
import numpy as np
print(np.square(2)) # 4
print(np.square((2,3))) # [4 9]
print(np.square([2,3])) # [4 9]
print(np.square(np.array([2,3]))) # [4 9]
# print(np.square({2,3})) # TypeError: unsupported operand type(s) for *: 'set' and 'set'
输出:
4
[4 9]
[4 9]
[4 9]
np.sqrt()开方
import numpy as np
print(np.sqrt(9)) # 3.0
print(np.sqrt((4,9))) # [2. 3.]
print(np.sqrt([4,9])) # [2. 3.]
print(np.sqrt(np.array([4,9]))) # [2. 3.]
# print(np.sqrt({4,9})) # TypeError: unsupported operand type(s) for *: 'set' and 'set'
输出:
3.0
[2. 3.]
[2. 3.]
[2. 3.]
pow()N次方开N次方
import numpy as np
# 二次乘方
print(pow(2,2)) # 4
# print(pow((2,3),2)) # unsupported
# print(pow([2,3],2)) # unsupported
# print(pow({2,3},2)) # unsupported
print(pow(np.array([2,3]),2)) # [4 9]
# 开二次方
print(pow(4,1/2)) # 2.0
print(pow(np.array([4,9]),1/2)) # [2. 3.]
# 三次乘方
print(pow(2,3)) # 8.0
print(pow(np.array([2,3]),3)) # [8. 27.]
# 开三次方
print(pow(27,1/3)) # 3.0
print(pow(np.array([8,27]),1/3)) # [2. 3.]
pow
也可以处理N次方,换个参数就行。
math.pow()
仅仅支持普通数字,不支持ndarray
。np.pow()
根本就不存在。pow()
仅仅支持ndarray
,不支持list
/tuple
,当然不支持set
/dict
了。
注意:这里的pow()
不来自math.
,也不来自np.
。
题外话
这里有点题外话,
- 没有
math.square()
,只有np.square()
。 - 没有
np.pow()
,只有pow()
和math.pow()
。 - 同时存在
math.sqrt()
和np.sqrt()
。而且对于普通数值运算,两者还一模一样,迷惑吧?
结束语
numpy
里面的乘方.square()
,以及开方.sqrt()
。传递普通数字,就返回普通数字。传递ndarray
,就会返回ndarray
,蛮智能的。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。