写Python也有点年头了,每次碰到数学计算还是忍不住去翻文档。前两天做小项目,一边要算余弦,一边要处理次方,来回折腾才理顺。很多人可能跟我一样,单个函数都见过,一组合就发懵。这篇就把这两块高频操作摊开说说,顺便做个对比,帮你少走点弯路。
先看余弦计算。Python里最常用的工具就是math.cos,不过它默认吃弧度,不是角度。我一开始直接丢了个60进去,算出来根本不是想要的结果,后来才反应过来要先转换。保险写法是这样:math.cos(math.radians(60))。如果是数组,那就直接用numpy.cos,一行代码批量计算,速度甩开循环好几条街。
再看次方函数。最省事的肯定是双星号运算符,比如2的10次方,写出来就是1024。理论上math.pow和内置pow也能用,但我个人觉得双星号最直观。真正到了大量数据场景,推荐numpy.power,配合数组处理,性能差距非常明显。
| 用途 | 常用写法 | 注意点 |
|---|---|---|
| 单点余弦 | math.cos(x) | x是弧度,角度先转换 |
| 批量余弦 | numpy.cos(arr) | 适合数组和矩阵 |
| 单点次方 | x的y次方 | 简单直接 |
| 批量次方 | numpy.power(数组,y) | 性能更好 |
再说说我的一点小体会。不管算余弦还是次方,先分清楚是单个值还是整组数据。单个值用math库就够了,代码干净,读起来舒服;遇到数组果断切numpy,否则自己写循环又慢又容易出错。还有一个容易踩的坑,就是单位统一。角度和弧度千万别混着用,编程时先约定,比事后换算省心多了。
最后补充个冷知识。开平方可以写x的0.5次方,也可以调math.sqrt;开任意次方直接写x的1次方就行。别看这些函数简单,组合起来能处理很多实际问题。希望这篇文章能帮你少翻几次文档,多留点时间干正事。







