Numpy 面向数组编程常见操作

举报
王小王-123 发表于 2021/04/24 02:44:17 2021/04/24
【摘要】 目录 数组编程 介绍 简单例子 逻辑条件作为数组操作 介绍 数学和统计方法 介绍 布尔数组的方法 介绍 排序 介绍 唯一值和其他的逻辑集合 介绍 每文一语 数组编程 介绍 使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题。我们都知道向量化的数组操作比纯Python...

目录

数组编程

介绍

简单例子

逻辑条件作为数组操作

介绍

数学和统计方法

介绍

布尔数组的方法

介绍

排序

介绍

唯一值和其他的逻辑集合

介绍

每文一语


数组编程

介绍

使用Numpy数组可以使你利用简单的数组表达式完成多项数据操作任务,而不需要编写大量的循环,这个极大的帮助了我们高效的解决问题。我们都知道向量化的数组操作比纯Python的等价实现在速度这一方面快很多,至于多少(一到两个数量级)甚至更多,生活需要慢节奏,但是计算就不可以了,掌握高效的计算模型,可以让数据分析如虎添翼!

简单例子

我们生成从-3.14--3.14,按照0.01的间隔生成,最后计算表达式X^2+Y^2的值

逻辑条件作为数组操作

介绍

numpy.where函数是三元表达式 x if condition else y 的向量化版本,假设我们有一个布尔值数组和两个数值数组

首先我们要明确的是我们自己去写这个逻辑来进行判断的话就比较的失败,因为遇到比较大的数组,速度会比较的慢,因为所有的代码工作都是解释器Python代码完成的,其次如果是多维的那就无法凑效了,但是我们使用np.where就可以简单的完成。

在np.where的第二个和第三个参数并需要数组,它们可以是标量,where在数据分析中的一个典型用法就是根据一个数组来生成一个新的数组。假设你有一个随机生成的矩阵数据,并且你想要其中的正值都有替换为2,所有的负数都替换为-2,使用这个函数轻松解决。

数学和统计方法

介绍

许多关于计算整个数组统计值或关于轴向数据的数据函数,可以作为数组类型的方法被调用。你可以使用聚合函数(通常也叫缩减函数),比如sum,mean,STD(标准差)既可以直接调用也可以使用顶层的numpy函数

 对于统计方法我们的案例其实差不多,至于怎样去了解那就需要自己去琢磨了,下面有一个基础数组的统计方法

基础数组的统计方法
sum

计算总数

mean 数学平均,0长度的数组平均值为NaN
std,var 标准差与方差
min,max 最小值和最大值
argmin,argmax 最小值和最大值的位置
cumsum 从0开始元素累计和(等差数列求和)
cumprod 从1开始元素累计积(阶乘)

 

一行代码计算1+2+....10数之和

布尔数组的方法

介绍

sum通常可以计算布尔值数组中true的个数,对于布尔数组,有两个非常常用的方法any和all。any用于检查数组中是否至少有一个true,如果有一个以上那么它就会返回true,any检查是否每一个值都是true,如果有一个不是true那就返回false。

排序

介绍

和Python类建列表相似,numpy数组可以使用sort方法按照位置排序

唯一值和其他的逻辑集合

介绍

numpy包含一些针对一维ndarray的基础集合操作。常用的一个方法是np.unique返回的是包含数组唯一的排好序的集合,首先集合肯定是唯一的,那么我们在进行排序,解决它的无序性

应用场景假设有一个数组里面有很多值,而且有大量的重复的值我们需要对其进行排序,就可以使用这个方法了,下面是一些数组集合的操作

数组集合操作

unique(x) 计算X的唯一值,并排序 intersect1d(x,y) 计算X和Y的交集,并排序 union1d(x,y) 计算X和Y的并集,并排序 in1d(x,y) 计算X中的元素是否包含在Y中,返回一个布尔值数组 setdiff1d(x,y) 差集,在X中但不在Y中的元素 setxor1d(x,y) 异或集,在X或Y中,但不属于X,Y交集的元素

每文一语

学会释然才是最好的排解

文章来源: blog.csdn.net,作者:王小王-123,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_47723732/article/details/113770161

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。