python纵向数据分析_Python高阶操作--数据分析的理解

数据分析:

什么是数据分析:

是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律

数据分析是用适当的方法对手机来的大量数据进行分析,帮助人们做出判断,以便来采取适当的行动

数据分析实现流程:

提出问题

准备数据

分析数据

获得结论

成果可视化

数据分析三剑客:

numpy

pandas

malplotlib

numpy:一维或者是一个多维的数组(低版本的列表)

下载:pip install numpy

导入: import numpy as np

NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库。重在于数值计算,也是大部分Python科学计算库的基础,多用于在大型、多维数组上执行的数值运算。

创建:

使用np.array()创建

使用plt创建

使用np的routines函数创建

一维数组的创建:

np.array([1,2,3,4,5,6])

多维数组的创建

np.array([[1,2,3,4],[5,6,7,8],[9,9,9,9]])

数组和列表有什么区别:

数据中存储的数组元素的数据类型必须是统一的

数据类型是有优先级的:字符串>浮点型>整型

读取外部图片加载:

导入: from matplotlib.pyplot as plt

使用:plt.imread('图片地址')

展示:plt.imshow()

属性:

zeros():数组中元素全部是0

ones():数组中元素全部是1

linespace():

arange():在什么范围内,可以设置步数

random():随机

常用属性:

shape:显示的是一个维度数据,

ndim:

size:

dtype:

索引和切片

索引操作和列表的索引操作同理

切片:

切出前两行数据:arr[0:2]

切出前两列数据:arr[行,列]--arr[:,0:2]

切出前两行前两列:arr[0:2,0:2]

上下翻转:arr[::-1,:,:]

变形:reshape

将一维/多维数组进行改变一维/多维

级联操作:concatenate

是对numpy数组进行横向或者纵向的拼接、

axis轴向的理解:

​0:代表列

​1:代表行

匹配级联:级联的多个数组的形状是一样

不匹配级联:

级联的多个数组的形状是不一样(但维度必须一样)

多个数组的行数一样就进行行级级联

多个数组的列数一样就进行列级级联

常用的聚合操作

sum,max,min,mean

常用的数学函数

NumPy 提供了标准的三角函数:sin()、cos()、tan()

numpy.around(a,decimals) 函数返回指定数字的四舍五入值。

参数说明:

a: 数组

decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

常用的统计函数

numpy.amin() 和 numpy.amax(),用于计算数组中的元素沿指定轴的最小、最大值。

numpy.ptp():计算数组中元素最大值与最小值的差(最大值 - 最小值)。

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

标准差std():标准差是一组数据平均值分散程度的一种度量。

公式:std = sqrt(mean((x - x.mean())**2))

如果数组是 1,2,3,4,则其平均值为 2.5。 因此,差的平方是 2.25,0.25,0.25,2.25,并且其平均值的平方根除以 4,即 sqrt(5/4) ,结果为 1.1180339887498949。

方差var():统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数,即 mean((x - x.mean())** 2)。换句话说,标准差是方差的平方根。

矩阵相关

NumPy 中包含了一个矩阵库 numpy.matlib,该模块中的函数返回的是一个矩阵,而不是 ndarray 对象。一个 的矩阵是一个由行(row)列(column)元素排列成的矩形阵列

matlib.empty() 函数返回一个新的矩阵,语法格式为:numpy.matlib.empty(shape, dtype),填充为随机数据

参数介绍:

shape: 定义新矩阵形状的整数或整数元组

Dtype: 可选,数据类型

numpy.matlib.eye() 函数返回一个矩阵,对角线元素为 1,其他位置为零。

numpy.matlib.eye(n, M,k, dtype)

n: 返回矩阵的行数

M: 返回矩阵的列数,默认为 n

k: 对角线的索引

dtype: 数据类型

numpy.matlib.identity() 函数返回给定大小的单位矩阵。单位矩阵是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为 1,除此以外全都为 0。

矩阵相乘

numpy.dot(a, b, out=None)

a : ndarray 数组

b : ndarray 数组

第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3。也就是说,结果矩阵第m行与第n列交叉位置的那个值,等于第一个矩阵第m行与第二个矩阵第n列,对应位置的每个值的乘积之和。

pandas:

numpy能够帮助我们处理的是数值型的数据,当然在数据分析中除了数值型的数据还有好多其他类型的数据(字符串,时间序列),那么pandas就可以帮我们很好的处理除了数值型的其他数据!

import pandas as pd

from pandas import Series,DataFrame

import numpy as np

Series:

Series是一种类似与一维数组的对象,由下面两个部分组成:

values:一组数据(ndarray类型)

index:相关的数据索引标签

创建:

由列表或numpy数组创建

由字典创建

索引:

隐式索引:默认索引

显式索引:增强数据的可读性,使用index指定索引

属性:

shape:

size:

index:

values:

常见方法:

head():取前几个

tail():取后几个

unique():

isnull(),notnull():非空

add(),sub(),mul(),div():

Series的运算法则:

做引一致的元素值进行算术运算,否则补空

关于Series的空值(缺失值)过滤:

​isnull,notnull:判断某些元素是否为空值NaN,然后使用布尔值充当索引进行二次计算

DataFrame:

DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。

行索引:index

列索引:columns

值:values

DataFrame的创建

ndarray创建

字典创建

DataFrame(data=np.random.randint(0,100,size=(4,6)))

dic = {

'name':['张三','李四','王老五'],

'salary':[10000,20000,15555]

}

df = DataFrame(data=dic,index=['a','b','c'])

属性:

values

columns

index

shape

索引:

对列进行索引

df['列名']:取出一列

df[['列名1','列名2']]:取出多列

对行进行索引

df.loc['行名']:取出一行

df.loc[['行名','行名']]:取出多行

对元素进行索引

df.iloc[行名,列名]:取出一个元素

df.loc[['行名','行名'],'列名']:取出多个元素

切片:

对行进行切片

df[0:2]

对列进行切片

df.iloc[:,0:2]

汇总:

索引:

dfcol:取单列

df.locrow:取单行

df.loc[row1,row2]:取多行

df.locrow,col:取元素

时间类型的转换:pd.to_datetime(col)

将某一列设置为行索引:df.set_index()

df.info():

返回df中一些原始信息

数据的行数

每一列元素的数据类型

检测列中是否有缺失数据

df['date'] = pd.to_datetime(df['date']):将data列中的字符串数据转换成时间序列的数据类型

一组布尔值可以作为df的行索引,不可作为列索引

shift(1):将Series的数据整体向下移动一位

你可能感兴趣的:(python纵向数据分析)