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

小万哥
• 阅读 104

舍入小数

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

截断

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

示例:

import numpy as np

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

print(arr)

相同的示例,使用 fix()

import numpy as np

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

print(arr)

四舍五入

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

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

示例:

import numpy as np

arr = np.around(3.1666, 2)

print(arr)

向下取整

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

例如:3.166 的 floor 是 3。

示例:

import numpy as np

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

print(arr)

向上取整

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

例如:3.166 的 ceil 是 4。

示例:

import numpy as np

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

print(arr)

NumPy 对数

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

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

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

底数为 2 的对数

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

示例:

import numpy as np

arr = np.arange(1, 10)

print(np.log2(arr))

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

底数为 10 的对数

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

示例:

import numpy as np

arr = np.arange(1, 10)

print(np.log10(arr))

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

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

示例:

import numpy as np

arr = np.arange(1, 10)

print(np.log(arr))

任意底数的对数

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

示例:

from math import log
import numpy as np

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

print(nplog(100, 15))

NumPy 求和

求和和加法有什么区别?

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

示例:

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 中的值进行求和:

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 将对每个数组中的数字进行求和。

示例

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

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() 函数执行部分求和。

示例

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

import numpy as np

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

newarr = np.cumsum(arr)

print(newarr)

返回:[1 3 6]

NumPy 乘积

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

示例:

import numpy as np

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

x = np.prod(arr)

print(x)

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

示例

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

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 将返回每个数组的乘积。

示例

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

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() 函数执行部分乘积。

示例

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

import numpy as np

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

newarr = np.cumprod(arr)

print(newarr)

返回:[5 30 210 1680]

最后

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

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

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

点赞
收藏
评论区
推荐文章
Karen110 Karen110
3年前
人工智能数学基础2:指数、方根及对数运算公式
本节主要介绍指数、方根及对数运算公式,这些公式都是基本的公式,但使用得比较多。一、指数公式二、方根运算在a、b大于0的情况下:三、对数运算2.1、对数的定义如果ba的n次方,即a的n次方等于b(a0且a不等于1),那么数n就叫做以a为底的b的对数,记作:其中,a叫做对数的底数,b叫做真数,n叫做以a为底b的对数。由此可见,在某种情况下(底数大于0,
Wesley13 Wesley13
2年前
PYTHON 数据分析常用类库
numpy科学计算的基础包(1)快速高效多维的数组对象ndarray(2)对数组执行元素级的计算以及直接对数组执行数学运算的函数(3)读写硬盘上基于数组的数据集的工具(4)线性代数运算,傅里叶变换,以及随机数生成(5)将C、C、Fortran代码集成到pythonscipy专门解决科学计算中各种标准问题域的模块的集合
Stella981 Stella981
2年前
Python数据分析
1.numpy\支持多维数组与矩阵的科学计算器包功能:常用功能16条a.ndarrayn维数组/矢量的操作。b. 支持高级大量的n维数组与矩阵的运算。c.针对数组运算提供大量的数学函数库。2.scipy\配合numpy完成对矩阵的计算,因此依赖于numpy,且含多个子模块功能:常用15个函数a. 标准导
Stella981 Stella981
2年前
Python NumPy学习总结
一、NumPy简介其官网是:http://www.numpy.org/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.numpy.org%2F)NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
小万哥 小万哥
1星期前
NumPy 双曲函数与集合操作详解
NumPy概览:使用numpy.sinh(),numpy.cosh(),numpy.tanh()计算双曲函数;示例包括求弧度值的双曲正弦、余弦。此外,numpy.arcsinh(),numpy.arccosh(),numpy.arctanh()用于求反函数。同时,NumPy提供集合操作如numpy.unique()构建唯一元素数组,numpy.union1d()求并集,numpy.intersect1d()求交集,numpy.setdiff1d()求差集,numpy.setxor1d()求对称差。
小万哥 小万哥
1个月前
NumPy 数组排序、过滤与随机数生成详解
NumPy数组排序排序数组排序数组意味着将元素按特定顺序排列。顺序可以是数字大小、字母顺序、升序或降序等。NumPy的ndarray对象提供了一个名为sort()的函数,用于对数组进行排序。示例:pythonimportnumpyasnparrnp.arr
小万哥 小万哥
2星期前
NumPy 通用函数(ufunc):高性能数组运算的利器
NumPy的通用函数(ufunc)提供高性能的逐元素运算,支持向量化操作和广播机制,能应用于数组的数学、逻辑和比较运算。ufunc可提高计算速度,避免低效的循环,并允许自定义函数以满足特定需求。例如,ufunc实现加法比循环更高效。通过frompyfunc可创建自定义ufunc。判断函数是否为ufunc,可检查其类型是否为numpy.ufunc。ufunc练习包括数组的平方、平方根、元素积及性能对比。
小万哥 小万哥
2星期前
NumPy 简单算术:加减乘除及其他运算
NumPy中的简单算术运算可以通过add,subtract,multiply,divide,power,mod,remainder等函数实现,这些函数支持条件运算,并接受where参数。例如,add()实现加法,subtract()表示减法,multiply()是乘法,divide()用于除法,power()提升到幂次,mod()和remainder()计算余数。absolute()或abs()可以计算数组元素的绝对值。这些函数可用于数组或类似数组对象,返回新数组存储运算结果。
小万哥 小万哥
1星期前
NumPy 差分、最小公倍数、最大公约数、三角函数详解
NumPy助你处理数学问题:计算序列的差分用np.diff(),示例返回5,10,20;找最小公倍数(LCM)用np.lcm(),数组示例返回18;最大公约数(GCD)用np.gcd.reduce(),数组示例返回4;三角函数如np.sin(),np.deg2rad()用于角度弧度转换。别忘了np.arcsin()等反三角函数,以及np.hypot()求斜边长度。学习NumPy,科学计算更轻松!