NumPy 舍入小数、对数、求和和乘积运算详解
舍入小数
在 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 来以任意底数取对数。
如果无法计算对数,所有的对数函数都会在元素中放置 -inf 或 inf。
底数为 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]
示例
对 arr1 和 arr2 中的值进行求和:
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,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
NumPy 舍入小数、对数、求和和乘积运算详解的更多相关文章
- Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘.dot.mul运算详解 2016年09月02日 00:00:36 -牧野- 阅读数:59593 标签: Opencv矩阵相乘点乘dotmul 更多 个人分类: O ...
- C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序
C#中缓存的使用 缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可: <%@ Outp ...
- <转>C++位运算详解
原文转自:http://www.crazycpp.com/?p=82 前言 以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查 ...
- 【小白学PyTorch】10 pytorch常见运算详解
参考目录: 目录 1 矩阵与标量 2 哈达玛积 3 矩阵乘法 4 幂与开方 5 对数运算 6 近似值运算 7 剪裁运算 这一课主要是讲解PyTorch中的一些运算,加减乘除这些,当然还有矩阵的乘法这些 ...
- Number浮点数运算详解
文章来自我的 github 博客,包括技术输出和学习笔记,欢迎star. 一道题 0.1 + 0.2 = ? 在浏览器中测试下计算结果,得到的结果是 0.30000000000000004,并不是理想 ...
- C语言位运算详解[转]
作者:911 说明:本文参考了http://www2.tsu.edu.cn/www/cjc/online/cyuyan/,算是对其的修正,在此将本文列为原创,实有抄袭之嫌疑.甚是惭愧! 位运算是指按二 ...
- C语言位运算详解
位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C语言提供了6个位操作运算符.这些运算符只能用于整形操作数,即只能用于带符号或无符号的char.short.int与long类型 ...
- C语言位运算详解(转载)
转载自:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html 位运算是指按二进制进行的运算.在系统软件中,常常需要处理二进制位的问题.C ...
- 【python】Numpy中stack(),hstack(),vstack()函数详解
转自 https://blog.csdn.net/csdn15698845876/article/details/73380803 这三个函数有些相似性,都是堆叠数组,里面最难理解的应该就是stack ...
- C# 位运算详解
运算符 描述 &(位与) 当两个二进制操作位都为1时,结果就为1 |(位或) 当两个二进制操作位有1个为1时,结果就为1 ^(位异或) 当两个二进制操作位只有1个为1时,结果为1 ~(位非) ...
随机推荐
- All in one:如何搭建端到端可观测体系
简介:一文看懂可观测! 作者:西杰 & 白玙 可观测的前生今世 系统的可观测与故障可分析作为系统运维中重要的衡量标准,随着系统在架构.资源单位.资源获取方式.通信方式演进过程,遇到了巨大挑战 ...
- 大模型 RAG 是什么
大模型 RAG(Retrieval-Augmented Generation)是一种结合了检索(Retrieval)与生成(Generation)能力的先进人工智能技术,主要用于增强大型语言模型(LL ...
- WPF 基于 Azure 的认知服务 情绪分析 语言检测 关键短语提取
本文主要是来安利大家基于 Azure 的认知服务,主要是文本认知服务,可以做到分析输入文本的情绪,以及判断当前输入文本所属语言等功能 本文分为两个部分 ,一个就是在 Azure 上的配置,另一个就是 ...
- Raft 共识算法4-选举限制
Raft 共识算法4-选举限制 Raft算法中译版地址:https://object.redisant.com/doc/raft中译版-2023年4月23日.pdf 英原论文地址:https://ra ...
- webapp监听手机物理返回键,返回上一页面或者关闭app
网上抄的做笔记: 1.项目下建文件夹commonFunction->physicBackListener.js 2.这个js文件内复制代码: document.addEventListener( ...
- 函数编程:强大的 Stream API
函数编程:强大的 Stream API 每博一文案 只要有人的地方,世界就不会是冰冷的,我们可以平凡,但绝对不可以平庸. ------ <平凡的世界> 人活着,就得随时准备经受磨难.他已经 ...
- Golang validate验证器
目录 自定义验证规 单条验证 多条批量验证 其它验证包: gookit/validate 手册地址: https://godoc.org/gopkg.in/go-playground/validato ...
- [popover, select] el-popover内有select的时候在选择后会自动关闭
Steps to reproduce 选择某个选项后会自动关闭 What is Expected? 选择后不自动关闭,等点击按钮后再去触发组件内的关闭方法. What is actually happ ...
- npm包离线安装
npm包离线安装 npm包的安装,在Internet联网机器上通过npm install轻松搞定的事情,在离线或者纯内网环境下就变得异常艰难,本文就来讲一讲离线安装npm包的方法. 通过 npm in ...
- RocketMQ阅读源码前的准备
本文将讲解如何在IDEA中导入 RocketMQ 源码,并运行 Broker 和 NameServer,编写一个消息发送与消息消费的示例. 一. 源码导入及调试 1.1 导入源码 RocketMQ 原 ...