NumPy 舍入小数、对数、求和和乘积运算详解

舍入小数

在 NumPy 中,主要有五种方法来舍入小数:

截断

去除小数部分,并返回最接近零的浮点数。使用 trunc()fix() 函数。

示例:

python 复制代码
import numpy as np

arr = np.trunc([-3.1666, 3.6667])

print(arr)

相同的示例,使用 fix()

python 复制代码
import numpy as np

arr = np.fix([-3.1666, 3.6667])

print(arr)

四舍五入

around() 函数在数字大于或等于 5 时将前面的数字或小数部分加 1。

例如:将数字四舍五入到 1 个小数位,3.16666 是 3.2。

示例:

python 复制代码
import numpy as np

arr = np.around(3.1666, 2)

print(arr)

向下取整

floor() 函数将小数舍入到最接近的较低整数。

例如:3.166 的 floor 是 3。

示例:

python 复制代码
import numpy as np

arr = np.floor([-3.1666, 3.6667])

print(arr)

向上取整

ceil() 函数将小数舍入到最接近的较高整数。

例如:3.166 的 ceil 是 4。

示例:

python 复制代码
import numpy as np

arr = np.ceil([-3.1666, 3.6667])

print(arr)

NumPy 对数

NumPy 提供了在底数为 2、e 和 10 的情况下执行对数运算的函数。

我们还将探讨如何通过创建自定义的 ufunc 来以任意底数取对数。

如果无法计算对数,所有的对数函数都会在元素中放置 -infinf

底数为 2 的对数

使用 log2() 函数执行底数为 2 的对数运算。

示例:

python 复制代码
import numpy as np

arr = np.arange(1, 10)

print(np.log2(arr))

注意:arange(1, 10) 函数返回一个从 1(包括)到 10(不包括)的整数数组。

底数为 10 的对数

使用 log10() 函数执行底数为 10 的对数运算。

示例:

python 复制代码
import numpy as np

arr = np.arange(1, 10)

print(np.log10(arr))

自然对数,即底数为 e 的对数

使用 log() 函数执行底数为 e 的对数运算。

示例:

python 复制代码
import numpy as np

arr = np.arange(1, 10)

print(np.log(arr))

任意底数的对数

NumPy 不提供任意底数的对数函数,所以我们可以使用 frompyfunc() 函数结合内置函数 math.log(),它有两个输入参数和一个输出参数:

示例:

python 复制代码
from math import log
import numpy as np

nplog = np.frompyfunc(log, 2, 1)

print(nplog(100, 15))

NumPy 求和

求和和加法有什么区别?

加法是在两个参数之间进行操作,而求和是在 n 个元素上进行操作。

示例:

python 复制代码
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3])

newarr = np.add(arr1, arr2)

print(newarr)

返回:[2 4 6]

示例

arr1arr2 中的值进行求和:

python 复制代码
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3])

newarr = np.sum([arr1, arr2])

print(newarr)

返回:12

沿轴求和

如果指定 axis=1,则 NumPy 将对每个数组中的数字进行求和。

示例

在以下数组上沿第一个轴执行求和:

python 复制代码
import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3])

newarr = np.sum([arr1, arr2], axis=1)

print(newarr)

返回:[6 6]

累积求和

累积求和意味着部分地对数组中的元素进行相加。

例如:[1, 2, 3, 4] 的部分和将是 [1, 1+2, 1+2+3, 1+2+3+4] = [1, 3, 6, 10]

使用 cumsum() 函数执行部分求和。

示例

在以下数组中执行累积求和:

python 复制代码
import numpy as np

arr = np.array([1, 2, 3])

newarr = np.cumsum(arr)

print(newarr)

返回:[1 3 6]

NumPy 乘积

要找到数组中元素的乘积,使用 prod() 函数。

示例:

python 复制代码
import numpy as np

arr = np.array([1, 2, 3, 4])

x = np.prod(arr)

print(x)

返回:24,因为 1*2*3*4 = 24

示例

找到两个数组中元素的乘积:

python 复制代码
import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

x = np.prod([arr1, arr2])

print(x)

返回:40320,因为 1*2*3*4*5*6*7*8 = 40320

沿轴的乘积

如果指定 axis=1,则 NumPy 将返回每个数组的乘积。

示例

在以下数组上沿第一个轴执行乘积:

python 复制代码
import numpy as np

arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([5, 6, 7, 8])

newarr = np.prod([arr1, arr2], axis=1)

print(newarr)

返回:[24 1680]

累积乘积

累积乘积意味着部分地进行乘法。

例如:[1, 2, 3, 4] 的部分乘积是 [1, 1*2, 1*2*3, 1*2*3*4] = [1, 2, 6, 24]`

使用 cumprod() 函数执行部分乘积。

示例

对以下数组中所有元素进行累积乘积:

python 复制代码
import numpy as np

arr = np.array([5, 6, 7, 8])

newarr = np.cumprod(arr)

print(newarr)

返回:[5 30 210 1680]

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

相关推荐
R-G-B5 分钟前
OpenCV Python——Numpy基本操作(Numpy 矩阵操作、Numpy 矩阵的检索与赋值、Numpy 操作ROI)
python·opencv·numpy·numpy基本操作·numpy 矩阵操作·numpy 矩阵的检索与赋值·numpy 操作roi
细节处有神明11 分钟前
Jupyter 中实现交互式图表:ipywidgets 从入门到部署
ide·python·jupyter
小小码农一只12 分钟前
Python 爬虫实战:玩转 Playwright 跨浏览器自动化(Chromium/Firefox/WebKit 全支持)
爬虫·python·自动化
小高00729 分钟前
🔥🔥🔥前端性能优化实战手册:从网络到运行时,一套可复制落地的清单
前端·javascript·面试
倔强的石头_1 小时前
【Linux指南】动静态库与链接机制:从原理到实践
linux
绝无仅有1 小时前
编写 Go 项目的 Dockerfile 文件及生成 Docker 镜像
后端·面试·github
赏点剩饭7781 小时前
linux中的hostpath卷、nfs卷以及静态持久卷的区别
linux·运维·服务器
绝无仅有1 小时前
使用 Docker 部署 Go 项目(Beego 框架)
后端·面试·github
深盾安全1 小时前
Python脚本安全防护策略全解析(上)
python
杜子不疼.1 小时前
《Python学习之使用标准库:从入门到实战》
开发语言·python·学习