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 ~(位非) ...
随机推荐
- IT人才能嗑到的这对CP,甜!
简介: 提到文件存储,相信大家都不陌生,在浩瀚的存储发展史中,文件存储无疑是璀璨的,耀眼的.那么,在性能已经成为刚需,自动驾驶行业风起云涌的当下,文件存储与GPU这对CP又有怎样的含糖量呢?今天,我们 ...
- 技术干货 | 应用性能提升 70%,探究 mPaaS 全链路压测的实现原理和实施路径
简介: 全链路压测方案下,非加密场景下至少有 70% 的性能提升,加密场景下 10%的性能提升,并在 MGS 扩容完成后可实现大幅的性能提升,调优的结果远超预期. 业务背景 随着移动开发行业的步 ...
- [GPT] Nginx+PHP 技术栈 504 Gateway Time-out 解决方案
1. 504 Gateway Time-out 是什么情况? 504 Gateway Time-out 是一种 HTTP 状态码,表示服务器在作为网关或代理时无法从上游服务器(例如应用程序服务器) ...
- [FAQ] web3js, Error: [number-to-bn] while converting number 0.1 to BN.js instance, error: invalid number value
我们在调用合约方法时,都可以传一些参数的,比如转账金额 value. value 的单位是 wei,这是一个很小的单位,所以一般数值很大. 如果误把 ether 当成 wei 传参,就会报标题中的错误 ...
- WPF 项目文件不加 -windows 的引用 WPF 框架方式
默认情况下的 WPF 项目都是带 -windows 的 TargetFramework 方式,但有一些项目是不期望加上 -windows 做平台限制的,本文将介绍如何实现不添加 -windows 而引 ...
- 006_Orcad创建Hetergeneous分裂元件
006_Orcad创建Hetergeneous分裂元件 以169脚的EMMC为例: 分为两部分,用到的引脚和NC的引脚. 先画一个框,依据引脚功能添加引脚.A部分做好,做B部分.引脚多,可以用pin ...
- SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息
SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息 参考: 1.https://www.mchweb.net/index.php/dev/887.htm ...
- Python 潮流周刊#49:谷歌裁员 Python 团队,微软开源 MS-DOS 4.0
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 【GUI软件】小红书指定博主批量采集笔记,支持多博主同时采集!
目录 一.背景介绍 1.1 爬取目标 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.背景介绍 1.1 爬取目标 ...
- supervisor 的安装与使用
学习视频: https://www.bilibili.com/video/BV1Vi4y147Fm?from=search&seid=8875783979034550201 更多说明: htt ...