Numpy的补充(重要!!)

摘要:
https://zhuanlan.zhihu.com/p/83208224Arr.reshape/np.reshape实际上是一种自动计算方法。df.set_Index()使用现有列设置数据帧索引可能有某些应用场景。G=df。groupby(“”)1)这个g可以用于直接聚合,g.agg(),g.apply()。这里我想说的不是这个,而是g本身有很多方法。通过for循环,或者g.Get_Group()获取分组后的结果。2) Groupby(by=)by=映射、函数、标签或istosflabels可以包含许多参数。最常见的是数据帧的列,可以用于一个或多个列表。也可以使用函数,但函数返回值的值值可以是作为分组基础的范围。

轴的概念

  英文解释  https://www.sharpsightlabs.com/blog/numpy-axes-explained/

  汉化解释 https://www.jianshu.com/p/f4e9407f9f9d

多维数组的索引及切片

  https://blog.csdn.net/brucewong0516/article/details/79186126

  核心  每个维度一个索引值,逗号分割

    每个维度取切片用冒号

    隔行取 需嵌套索引,arr[ [ 1,3,4,5] , : ]

np.newaxis

  给原数组增加一个维度,newaxis放在第几个位置,就会在shape里 相应的位置增加了一个维数

  https://www.jb51.net/article/144967.htm

  Numpy的补充(重要!!)第1张

广播机制

  涉及到不同shape的数组运算的时候的概念

  https://www.runoob.com/numpy/numpy-broadcast.html

  https://zhuanlan.zhihu.com/p/60365398

  

  

np.where( condition, [x, y] )

  condition:array_like,bool

  x,y:array_like 

  实际上 感觉涉及到的东西很多,比如涉及到了广播。这个应该是个很强大的方法。某种程度上像布尔值索引。

  https://zhuanlan.zhihu.com/p/83208224

  Numpy的补充(重要!!)第2张

arr.reshape(1,-1) / np.reshape(-1,1)

  实际就是自动计算的方法。-1代表自动计算,666

  https://blog.csdn.net/W_weiying/article/details/82112337

  Numpy的补充(重要!!)第3张

数组的添加 有两个方法 np.insert 和 np.append

np.insert(arr, obj, values, axis=None)

  https://blog.csdn.net/lcxxcl_1234/article/details/80869152

  1 values 可能是个m*1维数组

  Numpy的补充(重要!!)第4张

np.append() 

  Numpy的补充(重要!!)第5张

数组的行列相互交换

  不值一提了

  Numpy的补充(重要!!)第6张

np.unique(ar,return_index=False,return_inverse=False,return_counts=False,axis=None)

  最常用的功能是 去重。

  有这几个参数,return_index,return_counts 可能用到的频率比较高。知道有这几参数就行。

  当指定axis后,对多维数组可以使用,不会返回惟一值,而是对指定轴进行排序。

  Numpy的补充(重要!!)第7张

np.maximum()

  返回较大值,参数可以广播。完全可以用np.where 实现。可能 广播机制 会用的比较广。

  Numpy的补充(重要!!)第8张

np.concatenate()

  与np.stack的区别是 concatenate不改变维度

  Numpy的补充(重要!!)第9张

DateFram的切片,索引

  牢记,一定优先用 df.loc[ ]

    df.loc['a':'c','xx':'xxx'] 只有这一种方法,可以取多行多列

    df.loc[['a','d'],['xx','xxxx']]

df.rename() 

  用处就是对index,column进行重命名。

  也可以df.index =   df.columns = 直接改。这个方法的好处就是可以对想单独改一个名称比较方便,参数可以是字典。

  Numpy的补充(重要!!)第10张

  

df.set_index()

  Set the DataFrame index using existing columns

  可能会有一定的应用场景。原来一列的数值,变为index,对从数据库中读到的数据,把id变为index,这种场景下就能用到了

  Numpy的补充(重要!!)第11张

DateFrame 两个df的合并

  df.append(df1)

    Numpy的补充(重要!!)第12张

  

  pd.concat( [df1,df2] )

    Numpy的补充(重要!!)第13张

  

  pct_change()
    计算变化率 (后一个值-前一个值)/前一个值

  df.dropna()

    这几个参数注意下

    Numpy的补充(重要!!)第14张

  df.drop_duplicates

    去重,这几个参数眼熟下

    Numpy的补充(重要!!)第15张

  df.fillna()

    添补na数据。熟悉下这几个参数

    Numpy的补充(重要!!)第16张

多重索引 

  了解下这个方法就够了,切片,索引都差不多

  pd.MultiIndex.from_product([index1,index2])

  Numpy的补充(重要!!)第17张

聚合运算

  什么叫聚合函数,聚合函数就是对一组值执行计算,并返回单个值。返回单个值,这是重点!

  g = df.groupby(' ')

    1)这个 g 可以拿来直接聚合 ,g.agg( ) , g.apply( ) ,这里想说的不是这个,而是 g 本身有很多方法。

    通过 for 循环 取 ,或者  g.get_group() 取分组后的结果。

  

  Numpy的补充(重要!!)第18张

  

  Numpy的补充(重要!!)第19张

     2) groupby( by =) 

      by = mapping, function, label, or list of labels,可以接很多参数,最常见的就是dataframe的columns,一个 或多个列表都可以。

      函数也是可以的,只不是是函数的返回值的value值 作为分组的依据,可以是个范围(之前我们看到的都是确定值,比如男,女,省份等)。最好的例子就是 df.groupby(pd.cut(df,[])).count() 

      (即groupby可以按照具体的值分类,也可以按照范围分类,具体的值不必多说,说道范围,就想到了pd.cut  )

      Numpy的补充(重要!!)第20张

        

  g.agg() 聚合运算,参数比较灵活,可以接列表,字典,懂含义就行。 优点,速度快,缺点,局限性大,只能聚合。聚合接收的参数是每一个列,即series。

  g.apply( func ,* args ) 。 优点,自定义,灵活,缺点,速度慢。接收的参数是dateframe。 这个方法应用的场景很广。  

    参考示例 https://mp.weixin.qq.com/s?src=11&timestamp=1576214730&ver=2031&signature=QI*rOSPpICnGYsUjls9hZXl8R-hZ1lc6UkGniPGdQnFIPd14PAsgM26wNH1fSifvI*vbvKaSzUMempyW96DkE9M0X8ajFOOKgeYmb2b*UcSK48zGYrLrGnM9WXDwT8-F&new=1

时间序列索引

   ts = pd.date_range( )

   这里介绍的是由时间序列作为索引而引申出的两个方法,一个是truncate,一个是between_time,这两个方法的调用者 都是 series或者dataframe,而不是 timeindex。

    Numpy的补充(重要!!)第21张

免责声明:文章转载自《Numpy的补充(重要!!)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux FTP基本操作命令 ( 序列二 ftp)ms sql server 2005数据库日志文件过大,需要清除或者清空下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python爬取免费西祠代理

#!/usr/local/bin/python3.7 """ @File : xicidaili.py @Time : 2020/06/02 @Author : Mozili """ import urllib.request import urllib.parse from lxml import etree import...

Java中使用Jedis连接Redis对Hash进行操作的常用命令

场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Redis的启动和关闭(前台启动和后台启动): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details...

为什么索引可以让查询变快?终于有人说清楚了!

概述 人类存储信息的发展历程大致经历如下: 由于是个人凭着自己理解总结的,因此可能不一定精确,但是毋庸置疑的是,在当代,各大公司机构部门的数据都是维护在数据库当中的。数据库作为数据存储介质发展的最新产物,必然是具有许多优点的,其中一个很大的优点就是存储在数据库中的数据访问速度非常快。 数据库访问速度快的一个很重要的原因就在于索引index的作用。也就是这...

MySQL索引与锁笔记

一.索引 索引主要是为了提高查询速度,能够提高查询速度的原因是将无序的数据变成有序(相对) 索引分聚集索引,非聚集索引B+树索引,Hash索引 聚集索引:一般主键索引就是聚集索引,聚集索引的叶子节点存储表中的数据非聚集索引:又称二级索引,非主键索引都称为非聚集索引,非聚集索引的叶子节点存储的是主键(为什么存储的主键,而不是记录所在地址呢,理由相当简单,因为...

.NET 搭建简单的通知服务

搭建简单的通知服务 Intro 很多情况下,我们都会遇到一些需要进行通知报警的场景,比如说服务器资源监控报警,抢到火车票后通知用户进行付款。 原来主要是用的钉钉群里的机器人来做的通知,周末看到原来做 【Server 酱】的大佬写了一个简单的基于企业微信的微信推送,代码是 PHP 的非常简单,可以参考:https://github.com/easychen/...

【mongoDB中级篇②】索引与expain

索引的操作 数据库百分之八十的工作基本上都是查询,而索引能帮我们更快的查询到想要的数据.但是其降低了数据的写入速度,所以要权衡常用的查询字段,不必在太多字段上建立索引. 在mongoDB中默认是用btree来组织索引文件,并且可以按字段升序/降序来创建,便于排序. 数据准备 for (var i = 1; i <100000; i++) { db...