数据分析(一)

半腔热情 提交于 2020-02-11 06:29:59

学习python要有面向数组/多维数组的编程思维
numpy好的地方就在于可以进行数组层面的操作,不用循环去处理数组中的每一个元素,这叫做矢量化,以上用的函数基本都要在前面加上np.
ndarray里面是同一种类型的数据
切片的赋值会影响到源数据
在这里插入图片描述
如果只是复制一份切片,需要用到copy()

type(arr)是看arr的整个类型
arr.dtype是看arr中元素的数据类型

如何改变数据类型用astype

但是是产生一个新的数组,原数组类型不变
将元组列表等序列数组转换为ndarray用asarray
在这里插入图片描述
但是是创建了一个新的数组,原arr没有变
两种取值方式是等价的
在这里插入图片描述
以整数数组来取出对应数组
在这里插入图片描述
若传入多个整数数组,返回的是索引元组,注意是元组
在这里插入图片描述
本应该是一个3x3的矩阵才对,要想取得矩阵需要这样
在这里插入图片描述
还可以用np.ix_函数
在这里插入图片描述
用.T取得数组的转置
在这里插入图片描述
还可以通过transpose函数来转换轴来实现数组的转置
在这里插入图片描述
其中参数是变换后轴位置的元组,(1,0)表示,把原来的0轴和1轴对换
swapaxes函数是用来交换轴的,只能传入两个参数,意味着这个函数只能交换两个2轴
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通用函数(ufunc):快速元素级数组函数
从字面上理解就是进行元素级别的函数,如sqrt、exp、maximum等

可以用来划分整数和小数的函数modf,返回的是两个数组
在这里插入图片描述
《利用python进行数据分析》上有关于ufunc的一元二元的函数表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数meshgrid接收两个一维数组,返回二维数组
在这里插入图片描述
其中np.arange(-5,5,0.01)指的是在[-5,5)之间每0.01为一个间隔创建一个数组
通过条件来创建数组
在这里插入图片描述
其中zip函数为打包函数,将xarr,cond,yarr相对应的元组
在这里插入图片描述
上面的方法是比较麻烦的,我们可以用where函数
在这里插入图片描述
arr中大于0设置为2,否则为-2
在这里插入图片描述
只处理正数
sum,mean等函数可以有一个轴参数,axis=0表示统计相同列不同行的值,axis=1表示统计相同行不同列的值。
在这里插入图片描述
看最后的数组元素个数就可知
cumsum表示所有元素累计和
cumprod表示所有元素累计积
在这里插入图片描述
any(是否存在)、all(是否全部)用来判断bool数组的True情况
在这里插入图片描述
在这里插入图片描述

将数组中的元素进行排序用sort函数,参数是轴axis
在这里插入图片描述
求取数组中的唯一值用unique函数,并且返回一个排序的数组
在这里插入图片描述
判断一个数组存在的数是否在另一个数组中存在用in1d函数
在这里插入图片描述
在这里插入图片描述

四、用于数组的文件输入输出
np.save(‘文件名’,数组)从内存中保存数组到硬盘和np.load(文件名.npy)从硬盘加载数组到内存中
在这里插入图片描述
np.savez(文件名.npz,数组,数组)可以保存多个数组,加载还是用load,取值时可以用关键字’a’,'b’等
在这里插入图片描述

存取文本文件:
有np.loadtxt和np.genfromtxt将数据加载到普通的Numpy数组中,loadtxt和genfromtxt差不多,只不过它面向的时结构化数组和丢失数据处理
有np.savetxt将数组以某种分隔符写到文本文件中

五、线性代数
dot可以实现矩阵的点积
在这里插入图片描述
x.dot(y)和np.dot(x,y)是等价的
矩阵中的求逆运算、矩阵分解都运算在linalg模块中
在这里插入图片描述

六、随机数生成
在这里插入图片描述
在这里插入图片描述
七、pandas数据结构介绍
在这里插入图片描述

索引index是不可改的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Series重新设置索引用reindex
在这里插入图片描述
用参数fill_value填充没有赋值的索引
在这里插入图片描述
重新索引时,可以用method参数来设置填充方法
在这里插入图片描述
在这里插入图片描述
可以用ix标签来代替index,可以更加简洁
在这里插入图片描述
注意,ix标签用的[],不是用()
在这里插入图片描述
删除指定轴上的项用drop函数
在这里插入图片描述
删除的时候要设置轴,但是这里默认是0轴,即行,所以不用设置,要删除列的项要将轴设置为1,axis=1
在这里插入图片描述
索引的切片运算与python不同,是包含末端的
在这里插入图片描述
DataFrame的选取可以通过切片也可以通过布尔型数组运算
在这里插入图片描述
在这里插入图片描述
选取某些具体的行和列共同作用的子集可以用ix标签
在这里插入图片描述
经常会用到:
在这里插入图片描述
在这里插入图片描述
pandas可以对不同索引的对象进行算术运算,并且最终结果是两个对象的索引的并集。
在这里插入图片描述
DataFrame亦是如此
在这里插入图片描述
numpy中的ufun也可以用于pandas中
在这里插入图片描述
可以通过使用apply函数将一个方法运算在单行或者单列的一位数组上
在这里插入图片描述
对索引进行排序可以使用sort_index(),可设置轴或者升序还是降序,也可以通过某一列排序,添加一个参数by=‘列名’
rank()是 平均排名,rank(method=‘first’)是按第一次出现排名
在这里插入图片描述
在这里插入图片描述
索引是可以重复的
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!