一、Numpy 常用函数分类概览

函数类别常用函数
基本数学函数np.sum(x)np.sqrt(x)np.exp(x)np.log(x)np.sin(x)np.abs(x)np.power(a, b)np.round(x, n) 等
统计函数np.mean(x)np.median(x)np.std(x)np.var(x)np.min(x)np.max(x)np.percentile(x, q) 等
比较函数np.greater(a, b)np.less(a, b)np.equal(a, b)np.logical_and(a, b)np.isnan(x) 等
数组操作函数np.concatenate((a, b))np.split(x, indices)np.reshape(x, shape)np.copy(x)np.unique(x)np.sort(x) 等
其他常用函数np.where(condition, x, y)np.in1d(a, b)np.argsort(x)np.lexsort(keys) 等

 二、详细函数示例及说明

1. 基本数学函数

(1)平方根计算 np.sqrt(x)
import numpy as np# 计算单个数值的平方根
print(np.sqrt(9))  # 输出:3.0# 计算数组的平方根
print(np.sqrt([1, 4, 9]))  # 输出:[1. 2. 3.]# 对ndarray数组进行操作
arr1 = np.array([1, 225, 81])
print(np.sqrt(arr1))  # 输出:[ 1. 15.  9.]
(2)指数计算 np.exp(x)
import numpy as np# 计算e的n次方(e≈2.718)
print(np.exp(1))  # 输出:2.718281828459045(e^1)
print(np.exp(2))  # 输出:7.38905609893065(e^2)
print(np.exp(0))  # 输出:1(e^0=1)
(3)自然对数计算 np.log(x)
import numpy as np# 计算自然对数(以e为底)
print(np.log(1))  # 输出:0.0(ln(1)=0)
print(np.log(np.e))  # 输出:1.0(ln(e)=1)
(4)三角函数 np.sin(x)np.cos(x)
import numpy as np# 计算正弦值(参数为弧度)
print(np.sin(1))  # 输出:0.8414709848078965(sin(1弧度))# 计算π的正弦和余弦
print(np.sin(np.pi))  # 输出:1.2246467991473532e-16(≈0,sin(π)=0)
print(np.cos(np.pi))  # 输出:-1.0(cos(π)=-1)
(5)绝对值 np.abs(x)
import numpy as nparr = np.array([1, -2, 3, 4, -5])
print(np.abs(arr))  # 输出:[1 2 3 4 5](所有元素取绝对值)
(6)幂运算 np.power(a, b)
import numpy as nparr = np.array([1, -2, 3, 4, -5])
print(np.power(arr, 2))  # 输出:[ 1  4  9 16 25](每个元素的平方)
(7)四舍五入 np.round(x, n)
import numpy as nparr = np.array([2.1, -0.6, 1.9])
print(np.round(arr))  # 输出:[ 2. -1.  2.](默认保留0位小数)
(8)取整函数 np.ceil(x)np.floor(x)
import numpy as nparr = np.array([1.2, 1.7, 0.9])
print(np.ceil(arr))  # 输出:[2. 2. 1.](向上取整)
print(np.floor(arr))  # 输出:[1. 1. 0.](向下取整)
(9)缺失值检测 np.isnan(x)
import numpy as np# 无缺失值的数组
arr = np.array([1, 2, 3])
print(np.isnan(arr))  # 输出:[False False False]# 含缺失值(np.nan)的数组
arr = np.array([1, np.nan, 3])
print(np.isnan(arr))  # 输出:[False  True False](True表示对应位置是缺失值)

2. 统计函数

(1)求和 np.sum(x)
import numpy as np# 随机生成3x3数组(元素为1-100的整数)
arr = np.random.randint(1, 100, (3, 3))
print(arr)  # 示例输出:[[75 77 70][58 52 10][10 28 20]]
print(np.sum(arr))  # 输出:400(数组所有元素的和)
(2)平均值 np.mean(x)
import numpy as nparr = np.random.randint(1, 10, (3, 3))
print(arr)  # 示例输出:[[1 1 2][9 3 8][5 3 4]]
print(np.mean(arr))  # 输出:4.0(所有元素的平均值)
(3)中位数 np.median(x)
import numpy as nparr = np.random.randint(1, 10, 5)
print(arr)  # 示例输出:[6 6 6 8 7](先随机生成5个元素)
print(np.median(arr))  # 输出:6.0(排序后中间位置的元素)
(4)方差与标准差
  • 方差 np.var(x):衡量数据离散程度(平均值与每个数据点差的平方的平均值)
  • 标准差 np.std(x):方差的平方根,与原数据单位一致
import numpy as nparr = np.array([1, 2, 3, 4, 5])
print(np.var(arr))  # 输出:2.0(方差)
print(np.std(arr))  # 输出:1.4142135623730951(标准差)
(5)最值与索引 np.max(x)np.min(x)np.argmax(x)np.argmin(x)
import numpy as nparr = np.array([1, 2, 3, 4, 5])
print(np.max(arr), np.argmax(arr))  # 输出:5 4(最大值为5,位于索引4的位置)
print(np.min(arr), np.argmin(arr))  # 输出:1 0(最小值为1,位于索引0的位置)
(6)分位数 np.percentile(x, q)

分位数是将一组数据按照从小到大的顺序排列后,处于某一特定百分比位置的数值。它可以理解为:

  • 把数据分成 100 等份,第q个分位数就是处于第q%位置的数值(q的取值范围是 0-100)
  • 例如:第 50 个分位数就是中位数,即数据中一半的值小于等于它,一半的值大于等于它
import numpy as np# 定义一个简单的1维数组
arr = np.array([1, 2, 3, 4, 5])# 计算第50个分位数(中位数)
print(np.percentile(arr, 50))  # 输出:3.0
# 解释:数组排序后,中间位置的元素是3,因此50%分位数为3# 计算第40个分位数
print(np.percentile(arr, 40))  # 输出:2.6
# 解释:
# 1. 数组排序后索引为0-4(共5个元素)
# 2. 第40%位置的索引 = 40% * (5-1) = 1.6(即位于索引1和2之间)
# 3. 索引1的值为2,索引2的值为3,线性插值计算:2 + 0.6*(3-2) = 2.6
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 同时计算多个分位数(25%、50%、75%)
print(np.percentile(arr, [25, 50, 75]))  # 输出:[2.  3.  4. ]
# 解释:
# - 25%分位数:位于索引0.75处,插值后为2.0
# - 50%分位数:即中位数3.0
# - 75%分位数:位于索引2.25处,插值后为4.0

 

(7)累积和 np.cumsum(x)
import numpy as nparr = np.array([1, 2, 3, 4, 5])
print(np.cumsum(arr))  # 输出:[ 1  3  6 10 15](依次累加的结果:1, 1+2=3, 3+3=6, ...)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90662.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90662.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90662.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Colab中如何临时使用udocker(以MinIO为例)

本文主要是想记录一下自己在Colab中用udocker启动一个MinIO的容器的过程。 1. 命令行配置环境 由于目前没有用到GPU,所以我选择的是CPU的环境。(内存12G)然后就可以在命令行里安装udocker了,并配置minio的环境 # 由于minio需要做两个端口映射&#xff0c…

rt-thread 5.2.1 基于at-start-f437开发过程记录

基于rt-thread 5.2.1 bsp/at/at32f437-start进行开发,记录详细过程,包括中间遇到的各种坑。 at32f437-start原理图 自己设计的电路板主要换了一块小封装的同系列芯片, 目标是移植opENer。 1. 开发环境 env长时间不用,有点忘了。这次新下载…

EMCCD相机与电可调变焦透镜的同步控制系统设计与实现

EMCCD相机与电可调变焦透镜的同步控制系统设计与实现 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,觉得好请收藏。点击跳转到网站。 摘要 本文详细介绍了基于Python的EMCCD相机&#xff0…

前缀和-560.和为k的子数组-力扣(LeetCode)

一、题目解析1.子数组是数组中元素的连续非空序列2.nums[i]范围为[-1000,1000],存在负数3.由于2的题目条件,该题不能用双指针算法,不具备单调性 二、算法原理解法1:暴力解法->枚举 O(N^2)固定一个值,向后枚举数组和…

解决企业微信收集表没有图片、文件组件,不能收集图片的问题

问题: 企业微信里面的收集表功能,有一个图片收集的收集表,但是插入的组件没有收集图片的组件? 原因: 大概率是微盘未启用 解决方法: 1、登陆企业微信管理后台 企业微信 2、访问微盘页面,…

认识单片机

《认识单片机》课程内容 一、课程导入 在我们的日常生活中,有很多看似普通却充满智慧的小物件。比如家里的智能电饭煲,它能精准地控制煮饭的时间和温度,让米饭煮得香喷喷的;还有楼道里的声控灯,当有人走过发出声音时&a…

数据结构(2)顺序表算法题

一、移除元素1、题目描述2、算法分析 思路1:查找val值对应的下标pos,执行删除pos位置数据的操作。该方法时间复杂度为O(n^2),因此不建议使用。思路2:创建新数组(空间大小与原数组一致&#xff0…

汽车电子架构

本文试图从Analog Devices官网中的汽车解决方案视角带读者构建起汽车电子的总体架构图,为国内热爱和从事汽车电子行业的伙伴们贡献一份力量。 一 、汽车电子架构总览 整个汽车电子包括四个部分:车身电子(Body Electronics)、座舱与…

pycharm 2025 专业版下载安装教程【附安装包】

安装之前,请确保已经关闭所有安全软件(如杀毒软件、防火墙等)安装包 👇链接:https://pan.xunlei.com/s/VOU-5_L1KOH5j3zDaaCh-Z28A1# 提取码:6bjy下载 PyCharm2025专业版 安装包 并 进行解压运行 pycharm-2…

在 Java 世界里让对象“旅行”:序列化与反序列化

Java 生态里关于 JSON 的序列化与反序列化(以下简称“序列化”)是一个久经考验的话题,却常因框架繁多、配置琐碎而让初学者望而却步。本文将围绕一段极简的 JsonUtils 工具类展开,以 FastJSON 与 Jackson 两大主流实现为例&#x…

High Speed SelectIO Wizard ip使用记录

本次实验的目的是通过VU9P开发板的6个TG接口,采用固定连接的方式,即X和X-维度互联,其框图如下所示:IP参数配置通过调用High Speed SelectIO Wizard来实现数据通路,High Speed SelectIO Wizard ip有24对数据通道&#x…

Execel文档批量替换标签实现方案

问题背景需求:俺现网班级作为维度,批量导出每个班级学员的数据,excel的个数在1k左右,每一张表的人数在90左右。导出总耗时在10小时左右。代码编写完成并导出现网数据后,发现导出的标题错了。解决方案1.通过修改代码&am…

SpringBoot配置多数据源多数据库

Springboot支持配置多数据源。默认情况,在yml文件中只会配置一个数据库。如果涉及到操作多个数据库的情况,在同实例中(即同一个ip地址下的不同数据库),可以采用数据库名点数据库表的方式,实现跨库表的操作。…

Rocky9.4部署Zabbix7

一、配置安装源 rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm ​ yum clean all 二、安装Zabbix server,Web前端,agent yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf z…

【Java】对象类型转换(ClassCastException)异常:从底层原理到架构级防御,老司机的实战经验

在开发中,ClassCastException(类转换异常)就像一颗隐藏的定时炸弹,常常在代码运行到类型转换逻辑时突然爆发。线上排查问题时,这类异常往往因为类型关系复杂而难以定位。多数开发者习惯于在转换前加个instanceof判断就…

探路者:用 AI 面试加速人才集结,为户外爱好者带来更专业的服务

作为深耕户外用品领域的知名品牌,探路者已构建起覆盖全国的销售服务网络,上千品种的产品矩阵更是为品牌在市场中站稳脚跟提供了有力支撑。对探路者来说,要持续为户外爱好者带来专业且贴心的体验,专业人才是核心支撑。然而&#xf…

LeetCode——面试题 05.01 插入

通过万岁!!! 题目:一共会给四个数,分别是N、M、i、j,然后希望我们把N和M抓怒换为2进制以后,将M的二进制放在i到j之间的区域,如果M的二进制长度小于i-j1,则前面补0即可。最…

前端设计中如何在鼠标悬浮时同步修改块内样式

虽然只是一个小问题,但这个解决问题的过程也深化了自己对盒子模型的理解问题缘起正在写一个登录注册的小窗口,想要在鼠标悬浮阶段让按钮和文字都变色,但是发现实操的时候按钮和文字没办法同时变色鼠标悬停前鼠标悬停后问题分析仔细分析了下该…

航空发动机高速旋转件的非接触式信号传输系统

航空发动机是飞机动力系统的核心,各种关键部件如涡轮、压气机等,经常处于极端高温、高速旋转的工作环境中。航空发动机内的传感器数据,如何能够稳定可靠的通过无线的方式传输到检测太,一直是业内的一个难点和痛点。在这个领域&…

【postgresql按照逗号分割字段,并统计数量和求和】

postgresql按照逗号分割字段,并统计数量和求和postgresql按照逗号分割字段,并统计数量和求和postgresql按照逗号分割字段,并统计数量和求和 SELECT ucd, p ,tm, step, unitcd, tm_end from resource_calc_scene_rain_bound_value_plus whe…