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 ~(位非) ...
随机推荐
- 作业帮在线业务 Kubernetes Serverless 虚拟节点大规模应用实践
简介:目前方案已经成熟,高峰期已有近万核规模的核心链路在线业务运行在基于阿里云 ACK+ECI 的 Kubernetes Serverless 虚拟节点.随着业务的放量,未来运行在 Serverle ...
- EventBridge 与 FC 一站式深度集成解析
简介:本篇文章通过对 EventBridge 与 FC 一站式深度集成解析和集成场景的介绍,旨在帮助大家更好的了解面对丰富的事件时,如何使用 EventBridge 与 FC 的一站式集成方案,快速 ...
- Hologres揭秘:优化COPY,批量导入性能提升5倍+
简介: 揭秘Hologres优化COPY的技术原理,实现批量导入性能提升5倍+ Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼 ...
- 快速上手 Serverless | 入门第一课
简介: 本文从云计算抛砖引玉,详解 Serverless 的典型应用场景和一些产品介绍. 一. 从云计算到 Serverless 自世界上第一台通用计算机 ENIAC (图左)诞生以来,计算机科学与技 ...
- [GPT] 使用 nodejs的 puppeteer 库使用完关闭后,linux上面有很多 chrome 进程
在使用 Node.js 的 Puppeteer 库时,如果你在使用完后关闭了浏览器,但在 Linux 上仍然存在很多 Chrome 进程,可能是因为没有正确地关闭所有相关的进程. 可以尝试以下方法 ...
- [GPT] 提高个人网站的访问量的 30 种详细方式
内容优化:提高网站的质量和价值,让用户喜欢并分享你的内容. SEO优化:通过关键词优化.网站结构优化等方式,提高搜索引擎排名. 社交媒体:在社交媒体上分享你的内容,吸引更多人来访问你的网站. 广告投放 ...
- 阿里云OSS文件上传几种方法(主要是前端)
目录 零.准备 一.服务端签名后直传 1. 阿里云控制台配置 2. 后端接口开发(PHP) 3. 前端获取签名后上传 二.使用STS临时凭证进行上传 1. 后端接口开发(node) 2. 前端获取临时 ...
- h5开发,原生开发,混合开发
这里做一点对h5开发,原生开发,混合开发的笔记,记一点更新一点: 一.h5开发:html,css和js编写页面和业务逻辑. 1..页面栈上,h5通过history来管理回退或者前进.vue通过配置路由 ...
- Solution Set - 矩阵加速
A[HDU2604]求不含子串010和000的,长为\(n\)的01序列数. B[HDU6470]数列\(\{a_n\}:a_1=1,a_2=2,a_n=a_{n-1}+2a_{n-2}+n^3\), ...
- 从零开始:Django项目的创建与配置指南
title: 从零开始:Django项目的创建与配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 后端开发 tag ...