本文转载自公众号“读芯术”(ID:AI_Discovery)

大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用。没有这两个函数,人们将在这个庞大的数据分析和科学世界中迷失方向。

今天,小芯将分享12个很棒的Pandas和NumPy函数,这些函数将会让生活更便捷,让分析事半功倍。

在本文结尾,读者可以找到文中提到的代码的JupyterNotebook。

从NumPy开始:

NumPy是使用Python进行科学计算的基本软件包。它包含以下内容:

强大的N维数组对象

复杂的(广播broadcasting)功能

集成C / C++和Fortran代码工具

有用的线性代数,傅立叶变换和随机数功能

除明显的科学用途外,NumPy是高效的通用数据多维容器,可以定义任意数据类型。这使NumPy能够无缝且高速地与各种数据库进行集成。

1. allclose()

Allclose() 用于匹配两个数组并且以布尔值形式输出。如果两个数组的项在公差范围内不相等,则返回False。这是检查两个数组是否相似的好方法,因为这一点实际很难手动实现。

array1=np.array([0.12,0.17,0.24,0.29])

array2=np.array([0.13,0.19,0.26,0.31])# with a tolerance of 0.1, it shouldreturn False:

np.allclose(array1,array2,0.1)

False# with a tolerance of 0.2, it should return True:

np.allclose(array1,array2,0.2)

True

2. argpartition()

NumPy的这个函数非常优秀,可以找到N最大值索引。输出N最大值索引,然后根据需要,对值进行排序。

x=np.array([12, 10, 12, 0, 6, 8, 9, 1, 16, 4, 6,0])index_val=np.argpartition(x, -4)[-4:]

index_val

array([1, 8, 2, 0], dtype=int64)np.sort(x[index_val])

array([10, 12, 12, 16])

3. clip()

Clip() 用于将值保留在间隔的数组中。有时,需要将值保持在上限和下限之间。因此,可以使用NumPy的clip()函数。给定一个间隔,该间隔以外的值都将被裁剪到间隔边缘。

x=np.array([3, 17, 14, 23, 2, 2, 6, 8, 1, 2, 16,0])np.clip(x,2,5)

array([3, 5, 5, 5, 2, 2, 5, 5, 2, 2, 5, 2])

4. extract()

顾名思义,extract() 函数用于根据特定条件从数组中提取特定元素。有了该函数,还可以使用and和or等的语句。

# Random integers

array=np.random.randint(20,size=12)

array

array([ 0,  1,  8, 19, 16, 18, 10, 11,  2, 13, 14, 3])#  Divide by 2 and check ifremainder is 1

cond=np.mod(array, 2)==1

cond

array([False,  True, False,  True, False, False, False,  True, False, True, False,  True])# Use extract to get the values

np.extract(cond, array)

array([ 1, 19, 11, 13,  3])# Applycondition on extract directly

np.extract(((array <3) | (array>15)), array)

array([ 0,  1, 19, 16, 18,  2])

5. percentile()

Percentile()用于计算沿指定轴的数组元素的第n个百分位数。

a=np.array([1,5,6,8,1,7,3,6,9])print("50thPercentile of a,axis=0: ",

np.percentile(a, 50, axis=0))

50th Percentile of a, axis=0:6.0b=np.array([[10, 7, 4], [3, 2, 1]])print("30th Percentile of b,axis=0:",

np.percentile(b, 30, axis=0))

30th Percentile of b, axis=0:  [5.13.5 1.9]

6. where()

Where() 用于从满足特定条件的数组中返回元素。它返回在特定条件下值的索引位置。这差不多类似于在SQL中使用的where语句。请看以下示例中的演示。

y=np.array([1,5,6,8,1,7,3,6,9])# Where y is greaterthan 5, returns index position

np.where(y>5)

array([2, 3, 5, 7, 8], dtype=int64),)# First will replace the values that matchthe condition,

# second will replace the values that does not

np.where(y>5, "Hit", "Miss")

array(['Miss', 'Miss', 'Hit', 'Hit', 'Miss', 'Hit', 'Miss', 'Hit','Hit'],dtype='

接着来讲一讲神奇的Pandas函数。

Pandas

Pandas是一个Python软件包,提供快速、灵活和富有表现力的数据结构,旨在使处理结构化(表格,多维,潜在异构)的数据和时间序列数据既简单又直观。

Pandas非常适合许多不同类型的数据:

具有异构类型列的表格数据,例如在SQL表或Excel电子表格中

有序和无序(不一定是固定频率)的时间序列数据。

具有行和列标签的任意矩阵数据(同类型或异类)

观察/统计数据集的任何其他形式。实际上,数据根本不需要标记,即可放入Pandas数据结构。

以下是Pandas的优势:

轻松处理浮点数据和非浮点数据中的缺失数据(表示为NaN)

大小可变性:可以从DataFrame和更高维的对象中插入和删除列

自动和显式的数据对齐:在计算中,可以将对象显式对齐到一组标签,或者用户可以直接忽略标签,并让Series,DataFrame等自动对齐数据

强大灵活的分组功能,可对数据集执行拆分-应用-合并操作,以汇总和转换数据

轻松将其他Python和NumPy数据结构中的不规则的、索引不同的数据转换为DataFrame对象

大数据集的智能标签的切片,高级索引和子集化

直观的合并和联接数据集

数据集的灵活重塑和旋

坐标轴的分层标签(每个刻度可能有多个标签)

强大的IO工具,用于从平面文件(CSV和定界文件)、 Excel文件,数据库加载数据,以及以超高速HDF5格式保存/加载数据

特定于时间序列的功能:日期范围生成和频率转换、移动窗口统计、日期移位和滞后。

1. apply()

Apply() 函数允许用户传递函数并将其应用于Pandas序列中每个单一值。

# max minus mix lambda fn

fn=lambdax: x.max() - x.min()# Apply this on dframe that we've just createdabove

dframe.apply(fn)

2. copy()

Copy()函数用于创建Pandas对象的副本。将数据帧分配给另一个数据帧时,在另一个数据帧中进行更改,其值也会进行同步更改。为了避免出现上述问题,可以使用copy()函数。

# creating sample series

data=pd.Series(['India', 'Pakistan', 'China', 'Mongolia'])# Assigning issuethat we face

datadata1= data

# Change a value

data1[0]='USA'

# Also changes value in old dataframe

data# To prevent that, we use

# creating copy of series

new=data.copy()# assigning new values

new[1]='Changed value'# printing data

print(new)

print(data)

3. read_csv(nrows=n)

panda python_12个很棒的Pandas和NumPy函数,让分析事半功倍相关推荐

  1. 12个很棒的Pandas和NumPy函数,让解析事半功倍

    感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30428.html 大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用.没有这两 ...

  2. 12个很棒的Pandas和NumPy函数,让python数据分析事半功倍

    大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用.没有这两个函数,人们将在这个庞大的数据分析和科学世界中迷失方向. 今天,小芯将分享12个很棒的Pandas和NumPy函数, ...

  3. numpy序列预处理dna序列_?12个很棒的Pandas和NumPy函数,让分析事半功倍

    全文共5431字,预计学习时长16分钟 来源:Pexels 大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用.没有这两个函数,人们将在这个庞大的数据分析和科学世界中迷失方向. ...

  4. ​12个很棒的Pandas和NumPy函数,让分析事半功倍

    全文共5431字,预计学习时长16分钟 来源:Pexels 大家都知道Pandas和NumPy函数很棒,它们在日常分析中起着重要的作用.没有这两个函数,人们将在这个庞大的数据分析和科学世界中迷失方向. ...

  5. 全网最全python实现数据挖掘,数据分析(matlablib,pandas,numpy,量化分析)(附源代码)

    全网最全python实现数据挖掘,数据分析(matlablib,pandas,numpy,量化分析)(附源代码) 1.横直方图电影票房 2.散点图3月与10月每天的天气 3.条形图电影票房 4.条形图 ...

  6. php黄金搭档_动画电影电子游戏的搭档实际上很棒

    php黄金搭档 回顾性 (RETROSPECTIVE) Disclaimer: I don't intend for these games to compete with top-tier AAA ...

  7. 很棒的 Django 应用程序、项目和资源的精选表单

    目录 管理界面 分析 资产管理 验证 授权 博客管理 样板 缓存 兼容性 客户关系管理 仪表盘 数据科学 数据库 调试 电子邮件 字段 文件传输 形式 地理信息系统 图像处理 进出口 迁移 移动支持 ...

  8. c++每调用一次函数+1_每个开发人员都应该知道的一些很棒的现代C ++功能

    c++每调用一次函数+1 As a language, C++ has evolved a lot. 作为一种语言,C ++已经发展了很多. Of course this did not happen ...

  9. 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!

    React在过去几年变得越来越受欢迎.随之而来的是越来越多的库的发布,给我们带来了新的可能性,但最重要的是让开发这工作变得越来越简单. 在本文中,介绍 5 个 React 库,希望能给你带来一些帮助. ...

最新文章

  1. MYSQL监控-自带工具Query Profiler的使用
  2. 10 个超炫酷后台控制面板(附 GitHub下载链接)
  3. php 64位编码解码,php base64 编码和解码
  4. kindle的xray怎么用_Xray简单使用教程
  5. 转: 如何挑选适合的前端框架
  6. Mac修改pip为国内源
  7. 数据结构 2-0 线性表总结
  8. 一个简单的倒计时js插件
  9. Python之字符串格式化
  10. 【ML小结1】ML入门
  11. ImageNet 2012 中文标签(Chinese Labels)
  12. matlab示波器多个接口,simulink在一个图形中画出多个示波器曲线的方法
  13. 按当前位置与其它位置远近排序,按经纬度计算
  14. NUAA无线传感器网络 复习重点整理
  15. 2019年双十一购物数据分析报告
  16. bert:pre-training of deep bidirectional transformers for language understanding
  17. 米尔基于ARM架构核心板的国产化EtherCAT主站控制器解决方案
  18. 高德地图 点击获取坐标
  19. 诺基亚Lumia 920更新后出现屏幕亮度自动调节问题?
  20. Xilinx PCIE DMA--Sparten6/Kintex-7 BMD 搭建

热门文章

  1. 【飞秋】网络的基础-域名篇
  2. 这是 Google 工程师 Amit Singhal 发表在 Google 官方博客的一篇文章,讲述了 Google 搜索排名背后的一些技术,涉及到 Google 对网页,对语义,对用户意图的理解。
  3. React Native 宣布重构计划!
  4. 需求评审会议上,被逼疯的程序员
  5. 经典面试题(5):小心javascript自动插入分号机制
  6. 每个前端开发者都要理解页面的渲染
  7. mysql映射mapper_Mybatis中Mapper映射文件使用详解
  8. 湍流退化图像复原如何使用matlab,湍流退化图像复原技术研究现状及展望
  9. 骨干云池存储方式_你好,我存个对象(大误)漫谈对象存储
  10. 基因表达聚类分析之初探SOM