Numpy简易教程8——简易分析

NumPy教程 作者|ANIRUDDHA BHANDARI 编译|VK 来源|Analytics Vidhya 概述 NumPy是一个Python库,每个数据科学专业人员都应该熟悉它 这个全面的NumPy教程从头开始介绍NumPy,从基本的数学运算到NumPy如何处理图像数据 本文中有大量的Numpy概念和Python代码 介绍 我非常喜欢Python中的NumPy库。在我的数据科学之旅中,我无数次依赖它来完成各种任务,从基本的数学运算到使用它进行图像分类! 简而言之,NumPy是Python中最基本的库之一,也 阅读详情

使用函数进行简单的统计分析

1.排序

NumPy的排序方式主要可以概括为直接排序和间接排序两种。

  • 直接排序指对数值直接进行排序。
  • 间接排序是指根据一个或多个键对数据集进行排序。
    在NumPy中,直接排序经常使用sort函数,间接排序经常使用argsort函数和lexsort函数。
1.1 sort函数

sort 函数是最常用的排序方法,无返回值。
如果目标函数是一个视图,则原始数据将会被修改。

使用sort函数排序时可以指定一个axis参数,使得sort函数可以沿着指定轴对数据集进行排序。

案例:使用sort函数进行排序
np.random.seed(42)  #设置随机种子
arr = np.random.randint(1,10,size = 10)  #生成随机数
print('创建的数组为:',arr)

arr.sort()  #直接排序
print('排序后数组为:',arr)

arr = np.random.randint(1,10,size = (3,3))  #生成3行3列的随机数
print('创建的数组为:',arr)

arr.sort(axis = 1)  #沿着横轴排序
print('排序后数组为:',arr)

arr.sort(axis = 0)  #沿着纵轴排序
print('排序后数组为:',arr)
创建的数组为: [7 4 8 5 7 3 7 8 5 4]
排序后数组为: [3 4 4 5 5 7 7 7 8 8]
创建的数组为: [[8 8 3]
 [6 5 2]
 [8 6 2]]
排序后数组为: [[3 8 8]
 [2 5 6]
 [2 6 8]]
排序后数组为: [[2 5 6]
 [2 6 8]
 [3 8 8]]
1.2 argsort函数和lexsort函数

使用argsort函数和lexsort函数,可以在给定一个或多个键时,得到一个由整数构成的索引数组,索引值表示数据在新的序列中的位置。

lexsort函数可以一次性对满足多个键的数组执行间接排序。

案例:使用argsort函数进行排序
arr = np.array([2,3,6,8,0,7])
print('创建的数组为:',arr)
print('排序后数组为:',arr.argsort())  #返回值为重新排序值的下标
创建的数组为: [2 3 6 8 0 7]
排序后数组为: [4 0 1 2 5 3]
案例:使用lexsort函数排序
a = np.array([3,2,6,4,5])
b = np.array([50,30,40,20,10])
c = np.array([400,300,600,100,200])
d = np.lexsort((a,b,c))  #lexsort函数只接受一个参数,即(a,b,c)
#多个键值排序是按照最后一个传入数据计算的
print('排序后数组为:',list(zip(a[d],b[d],c[d])))
排序后数组为: [(4, 20, 100), (5, 10, 200), (2, 30, 300), (3, 50, 400), (6, 40, 600)]

2.去重与重复数据

在统计分析的工作中,难免会出现“脏”数据的情况。重复数据就是“脏”数据的情况之一。若一个一个地手动删除,耗时费力,效率低。

2.1 使用unique函数去重

在NumPy中,可以通过unique函数找出数组中的唯一值并返回已排序的结果。

案例:数组内数据去重
names = np.array(['小明', '小黄', '小花', '小明', 
    '小花', '小兰', '小白'])
print('创建的数组为:',names)

print('去重后的数组为:',np.unique(names))

#跟np.unique等价的Python代码实现过程
print('去重后的数组为:',sorted(set(names)))
创建的数组为: ['小明' '小黄' '小花' '小明' '小花' '小兰' '小白']
去重后的数组为: ['小兰' '小明' '小白' '小花' '小黄']
去重后的数组为: ['小兰', '小明', '小白', '小花', '小黄']

2.2 使用tile函数和repeat函数实现数据重复

另一种情况,在统计分析中也经常遇到,即需要把一个数据重复若干次。在NumPy中主要使用tile函数和repeat函数实现数据重复。

tile函数

tile函数的格式如下:numpy.tile(A, reps)。tile函数主要有两个参数,参数A指定重复的数组,参数reps指定重复的次数。

案例:使用tile函数实现数据重复
arr = np.arange(5)
print('创建的数组为:',arr)
print('重复后数组为:',np.tile(arr,3))  #对数组进行重复
创建的数组为: [0 1 2 3 4]
重复后数组为: [0 1 2 3 4 0 1 2 3 4 0 1 2 3 4]
arr = np.arange(9).reshape(3,3)
print('创建的数组为:',arr)
print('重复后数组为:',np.tile(arr,3))  #对数组进行重复
创建的数组为: [[0 1 2]
 [3 4 5]
 [6 7 8]]
重复后数组为: [[0 1 2 0 1 2 0 1 2]
 [3 4 5 3 4 5 3 4 5]
 [6 7 8 6 7 8 6 7 8]]
repeat函数

repeat函数的格式如下:numpy.repeat(a, repeats, axis=None)
repeat函数主要有3个参数,参数a指定需要重复的数组元素,参数repeats指定重复次数,参数axis指定沿着哪个轴进行重复。

案例:使用repeat函数实现数据重复
np.random.seed(42)  #设置随机种子
arr = np.random.randint(0,10,size = (3,3))
print('创建的数组为:',arr)
print('重复后数组为:',arr.repeat(2, axis = 0))  #按行进行元素重复
print('重复后数组为:',arr.repeat(2, axis = 1))  #按列进行元素重复
创建的数组为: [[6 3 7]
 [4 6 9]
 [2 6 7]]
重复后数组为: [[6 3 7]
 [6 3 7]
 [4 6 9]
 [4 6 9]
 [2 6 7]
 [2 6 7]]
重复后数组为: [[6 6 3 3 7 7]
 [4 4 6 6 9 9]
 [2 2 6 6 7 7]]

这两个函数的主要区别在于,tile函数是对数组进行重复操作,repeat函数是对数组中的每个元素进行重复操作。

3.常用的统计函数

在NumPy中,有许多可以用于统计分析的函数。常见的统计函数有sum、mean、std、var、min和max等。

几乎所有的统计函数在针对二维数组计算的时候都需要注意轴的概念。当axis参数为0时,表示沿着纵轴进行计算。当axis为1时,表示沿着横轴进行计算。但在默认时,函数并不按照任一轴向计算,而是计算一个总值。

函数说明
sum计算数组的和
mean计算数组均值
std计算数组标准差
var计算数组方差
min计算数组最小值
max计算数组最大值
argmin返回数组最小元素的索引
argmax返回数组最小元素的索引
cumsum计算所有元素的累计和
cumprod计算所有元素的累计积
案例:常用统计函数
arr = np.arange(20).reshape(4,5)
print('创建的数组为:',arr)
print('数组的和为:',np.sum(arr))  #计算数组的和
print('数组横轴的和为:',arr.sum(axis = 0))  #沿着横轴计算求和
print('数组纵轴的和为:',arr.sum(axis = 1))  #沿着纵轴计算求和
print('数组的均值为:',np.mean(arr))  #计算数组均值
print('数组横轴的均值为:',arr.mean(axis = 0))  #沿着横轴计算数组均值
print('数组纵轴的均值为:',arr.mean(axis = 1))  #沿着纵轴计算数组均值
print('数组的标准差为:',np.std(arr))  #计算数组标准差
print('数组的方差为:',np.var(arr))  #计算数组方差
print('数组的最小值为:',np.min(arr))  #计算数组最小值
print('数组的最大值为:',np.max(arr))  #计算数组最大值
print('数组的最小元素为:',np.argmin(arr))  #返回数组最小元素的索引
print('数组的最大元素为:',np.argmax(arr))  #返回数组最大元素的索引
创建的数组为: [[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]
 [15 16 17 18 19]]
数组的和为: 190
数组横轴的和为: [30 34 38 42 46]
数组纵轴的和为: [10 35 60 85]
数组的均值为: 9.5
数组横轴的均值为: [ 7.5  8.5  9.5 10.5 11.5]
数组纵轴的均值为: [ 2.  7. 12. 17.]
数组的标准差为: 5.766281297335398
数组的方差为: 33.25
数组的最小值为: 0
数组的最大值为: 19
数组的最小元素为: 0
数组的最大元素为: 19

在NumPy中,cumsum 函数和 cumprod 函数采用不聚合计算,产生一个由中间结果组成的数组。

arr = np.arange(2,10)
print('创建的数组为:',arr)
print('数组元素的累计和为:',np.cumsum(arr))  #计算所有元素的累计和
print('数组元素的累计积为:',np.cumprod(arr))  #计算所有元素的累计积
创建的数组为: [2 3 4 5 6 7 8 9]
数组元素的累计和为: [ 2  5  9 14 20 27 35 44]
数组元素的累计积为: [     2      6     24    120    720   5040  40320 362880]
numpy教程 目录 文章目录目录一、numpy概述1. numpy`历史`2. numpy的核心:多维数组二、numpy基础1. ndarray数组1)内存中的ndarray对象2)ndarray数组对象的特点3)ndarray数组对象的创建4)ndarray对象属性的基本操作5)ndarray对象的dtype属性的值6) ndarray数组对象的维度操作7) 数组元素索引(下标)8) ndarray数组切片操作9) ndarray数组的运算10) ndarray数组的掩码操作11) 多维数组的组合与拆分12)ndarr 阅读详情

相关推荐

python 去掉重复行

可以去掉重复的行,比较快捷和方便,还有,python 是个非常强大的工具

NumPy 重复数据与去重

在数理统计分析中,需要提前将重复数据剔除,在NumPy中,可以通过unique 函数找到数组中的唯一值并返回已排序的结果。

chenjh027的博客 2769

Python numpy 点数组去重的实例

下面小编就为大家分享一篇Python numpy 点数组去重的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

数组去重(unique())--numpy

unique()函数--numpy

chongbaikaishi的博客 6411

手把手教你用Keil5和Proteus8给51单片机跑个流水灯(附完整源码+安装包)

本文详细介绍了如何使用Keil5和Proteus8为51单片机实现流水灯效果,包括开发环境配置、汇编代码编写、电路设计及仿真调试。通过完整的源码和安装包,帮助初学者快速掌握C51单片机开发的核心流程,适合嵌入式开发入门学习。

weixin_42632434的博客 372

骗分导论 CSP、NOIP、蓝桥杯、PAT、USACO等竞赛的算法骗分技巧 轻松省三

问题来了,那么多座桥,炸一座就破坏岛屿的联系,可能性微乎其微(除非特别设计数据)。它们的价值极大,不仅能初步帮你检验程序的对错,而且,如果你不会做这道题,你就可以直接输出样例!在OI考试中最后难的题数据最后的几个,他们往往不会创造新的数据,此时就可以直接输出最后几个数据了。需要运用《骗分导论》第3章中学到的知识,先写出朴素算法,然后造一些数据,可能就会发现规律。有些时候,问题的答案可能很有特点:对于大多数情况,答案是一样的。据说,在NOIP2013中,有人最后一题不会,愤然打了个随机数,结果得了。

星卯教育-信奥教练tony 6404

Numpy数组的去重

importnumpyasnp arr = np.array([[1,2,3,4,5],[3,4,5,6,7]]) #去重 np.unique(arr)

harryxia2014的博客 4191

飞书日历同步Outlook翻车?我踩过的坑和最终用Google Calendar成功的完整配置记录

本文详细记录了从Outlook日历同步到飞书时遇到的常见问题及解决方案,特别是通过Google Calendar实现稳定同步的完整配置流程。文章揭示了Outlook同步方案易翻车的原因,并提供了Google Calendar的避坑指南、高级技巧和企业级部署建议,帮助用户高效实现日历同步。

weixin_33724046的博客 313

数据分析--Numpy--去重与重复

1.unique函数 #通过unique函数可以找出数组中的唯一值并返回已经排序的结果 arr = np.array([1,1,1,2,2,3,3,]) res = np.unique(arr) print(res)#[1 2 3] 2.tile函数 #主要有两个参数,参数’A’指定重复的数组, #参数’reps’指定重复的次数 arr1 = np.arange(5) arr2 = np.til...

weixin_44675377的博客 3680

避坑指南:Unity与Visual Studio开发环境配置中的5个常见问题及解决方案

本文针对Unity与Visual Studio开发环境配置中的5个常见问题,提供了详细的解决方案。重点解决了项目文件生成失败导致命名空间无法识别、调试器无法附加、包管理器与扩展安装混乱、脚本编译错误以及多版本环境冲突等核心痛点,帮助开发者构建稳定高效的开发调试环境。

weixin_27791839的博客 281

【UE5】RTS游戏的框选功能+行军线效果实现

步骤: 一、项目准备; 二、框选NPC并移动到指定地点; 三、框选效果; 四、行军线效果

ChaoChao66666的博客 2378

22.1 Numpy 去重

22.1 Numpy去重

water lover的博客 1322

深入理解SQL注入中的union select 1,2,3....

UNION 用于合并两个查询的结果集

渗透之路,攻防之间皆学问 2万+

Numpy简易教程5——创建NumPy矩阵

创建NumPy矩阵 NumPy对于多维数组的运算,默认情况下并不进行矩阵运算。如果需要对数组进行矩阵运算,则可以调用相应的函数。 在NumPy中,矩阵是ndarray的子类。 在NumPy中,数组和矩阵有着重要的区别。NumPy提供了两个基本的对象:一个N维数组对象和一个通用函数对象。其他对象都是在它们之上构建的。 矩阵是继承自NumPy数组对象的二维数组对象。与数学概念中的矩阵一样,NumPy中的矩阵也是二维的。 1. 创建矩阵 可以使用mat、matrix以及bmat函数来创建矩阵。使用mat函数创建矩

mighty13的专栏 5万+

面经-2023-禾赛-FPGA工程师

面经-2023-禾赛-FPGA工程师

w0shishabi的博客 2969

计算机视觉(角点检测)- 1 - Harris角点检测

计算机视觉(角点检测)-1.1 Harris角点检测学习前言 学习前言   今天更新一下计算机视觉的东西吧,哈哈哈o( ̄︶ ̄)o   关于角点检测呢,就是检测图像中角点的算法,常见的有四种常见的算法:Moravec角点检测算法、 Harris角点检测算法、Shi-Tomasi 算法、FAST角点检测算法,不过常用的就两种吧——Harris角点检测算法、Shi-Tomasi 算法(反正我基本上就只用到这两种,先着重介绍前面两种,后面再花世界介绍吧)(~ ̄▽ ̄)~ ...

qq_40374812的博客 1万+

Numpy简易入门

本文提供最简易的 Numpy 的入门教程,适合初学者。(黄海广)1.Numpy 简易入门NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,...

fengdu78的博客 386

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

AI基础:Numpy简易入门

本文提供最简易的 Numpy 的入门教程,适合初学者。1.Numpy 简易入门NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA 用其处理一些本来使用 C++,Fortran 或 Matlab 等所做的任...

涛哥聊Python 986

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Numpy简易教程2——创建随机数数组

创建随机数数组 NumPy提供了强大的生成随机数的功能。真正的随机数很难获得,实际中使用的都是伪随机数。大部分情况下,伪随机数就能满足需求。当然,某些特殊情况除外,如进行高精度的模拟实验。 对于NumPy,与随机数相关的函数都在random模块中,其中包括了可以生成服从多种概率分布随机数的函数。 1. random函数 random函数是最常见的生成随机数的方法,用于在区间[0,1)中生成均匀分布的随机数或随机数数组。 函数格式为random(size=None),size参数可选,即结果数组的形状元组,默

mighty13的专栏 8万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Numpy简易教程——图像的数组表示

Numpy简易教程——图像的数组表示 文章目录Numpy简易教程——图像的数组表示一.图像的表示模式二.PIL库的使用1.PIL库简介与下载,导入2.图像的数组表示3.图像的变换下一篇:Matplotlib入门教程 一.图像的表示模式 图像一般采用RGB三通道色彩模式,每个像素点由红(R ),绿(G),蓝(B)三色组成。 取值范围为: R:0-255 G:0-255 B:0-255 三者叠加就可获...

qq_44932835的博客 2158

Numpy简易教程——入门篇

Numpy-入门笔记 文章目录Numpy-入门笔记一.ndarray对象及其使用1.常用属性2.ndarray对象创建(1)从python中的元组或列表中创建,在不指定dtype属性的值是,Numpy自动根据元素类型改变(2)使用Numpy中的函数(3)Numpy的其他函数使用3.ndarray对象的维度与元素类型变换 一.ndarray对象及其使用 1.常用属性 例子: 2.ndarray对...

qq_44932835的博客 679

Numpy简易教程6——ufunc函数

ufunc函数 ufunc函数即通用函数(universal function),是一种能够对数组中的所有元素进行操作的函数。ufunc函数是针对数组进行操作的,并且都以NumPy数组作为输出,因此不需要对数组的每一个元素都进行操作。对一个数组进行重复运算时,使用ufunc函数比使用math库中的函数效率要高很多。 1. 常用的ufunc函数运算 常用的ufunc函数运算有四则运算、比较运算和逻辑运算等。 1.1 四则运算 ufunc函数支持全部的四则运算,并且保留习惯的运算符,和数值运算的使用方式一样(原

mighty13的专栏 3万+

NumPy教程:使用Python进行数据分析

NumPy is a commonly used Python data analysis package. By using NumPy, you can speed up your workflow, and interface with other packages in the Python ecosystem, like scikit-learn, that use NumPy unde...

cumei1658的博客 2101
上一篇: Numpy简易教程7——读/写文件
下一篇: JSONPath库:使用类似Xpath的语法解析JSON数据
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值