Python数据分析 第一章 数据分析的概述

目录

第一章 数据分析的概述

1.数据分析的概述

1.Python在数据分析方面的优势

2.数据分析流程

3.数据分析层次

4.数据分析常见应用场景

2. Python数据分析模块

1. Numpy 模块

1.定义:

2.格式:

3.生成数组

4.数组统计方法

2. Pandas 模块

1.定义

2.格式

3. Series 结构

4. DateFram 结构

        DataFrame提供的数据分析方法

3.其他模块

1. Matplotlib 模块/ Seaborm 模块

2. Scipy 模块

3. Stasmodels 模块

4.Scikit - Learn模块


第一章 数据分析的概述

1.数据分析的概述

        数据 --- 研究的对象

        分析 --- 对对象的动作

1.Python在数据分析方面的优势

  1. Python 不受数据规模的约束,能够处理大规模数据

  2. sklearn库提供了丰富的数据挖掘和人工智能方法

  3. 能够显著提高工作效率

  4. 能够绘制各种前言的数据图表

2.数据分析流程

  1. 数据采集

  2. 数据整理和存储

  3. 数据分析和可视化

  4. 数据报表和总结

3.数据分析层次

  1. 描述性分析 --- 发生了什么

  2. 诊断性分析 --- 为什么会发生

  3. 预测性分析 --- 可能会发生什么

  4. 处方性分析 --- 该做些什么

4.数据分析常见应用场景

  1. 电商平台

  2. 银行金融机构

  3. 房产交易平台

  4. 工业互联网

2. Python数据分析模块

1. Numpy 模块

        导入模块:pip install numpy

1.定义:

        是Python语言的一个扩展程序库,支持大量的多位数组与矩阵计算,此外也正对数组运算提供大量的数学函数。

2.格式:

import numpy as np
print(np.__version__)
​
结果:
1.23.3

支持广播功能函数,线性代数运算,傅里叶变换等功能。

3.生成数组

        其N维数组对象为 ndarray --- 与列表形式上相似,但内部元素必须相同类型 --- 生成ndarray时array方法 --- numpy.array

import numpy as np
​
arr0 = np.array([1, 3, 5, 7])
print(arr0)
arr1 = np.array([[1, 3], [5, 7]])
print(arr1)
​
结果:
[[1 3]
 [5 7]]

使用类型:np.zeros((m,n)) --- m 行 n 列的0值数组

np.ones((m,n)) --- m 行 n 列的填充值为1的数组

np.eye(m,n) --- m 行 n 列的对角线位置填充为1的 矩阵

使用random方法生成随机数组

import numpy as np
​
print(np.zeros((2, 3)))
print(np.ones((3, 2)))
print(np.eye(3, 3))
print(np.random.rand(3, 3))
print(np.random.randint(1, 10, (3, 3)))  # 从1-10中随机生成3*3的数组
​
结果:
[[0. 0. 0.]
 [0. 0. 0.]]
[[1. 1.]
 [1. 1.]
 [1. 1.]]
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
[[0.59603956 0.6627258  0.91078966]
 [0.07946956 0.16442522 0.13887031]
 [0.81429468 0.05605028 0.01502452]]
[[3 7 4]
 [2 3 8]
 [6 7 2]]

4.数组统计方法

        可以快速实现查找数组中的最小值、最大值、求解平均数、中位数、标准差等功能

import numpy as np
​
arr4 = np.random.randint(1, 10, (3, 3))
print("生成数组:\n", arr4)
print('数组中最大的值',np.max(arr4))  # 求解数组中最大的值
print('数组中最小的值',np.min(arr4))  # 求解数组中最小的值
print("数组行方向的最小值",np.amin(arr4, 0))  # 求解数组行方向的最小值
print("数组列方向的最小值",np.amin(arr4, 1))  # 求解数组列方向的最小值
print("数组中的中位数",np.median(arr4))  # 求解数组中的中位数
​
结果:
生成数组:
 [[2 3 8]
 [6 3 6]
 [8 4 5]]
数组中最大的值 8
数组中最小的值 2
数组行方向的最小值 [2 3 5]
数组列方向的最小值 [2 3 4]
数组中的中位数 5.0

2. Pandas 模块

        导入模块 :pip install pandas

1.定义

        基于numpy构建的数据分析库,具有比bumpy更高级的数据结构和分析工具 --- 如 Series类型、DataFrame类型 --- 通常作为分析工具对数据进行处理和分析

2.格式

import pandas as pd
print(pd.__version__)

3. Series 结构

        定义 --- 类似于一维数组的数据结构,有一组数据和数据的索引构成

        格式: 左边第一列表示索引,右边表示数据

import pandas as pd
​
print(pd.Series(data=[1, 2, 3, 4]))
print(pd.Series(data=[1, 2, 3, 4], index=['a', 'b', 'c', 'd']))
print(pd.Series(data=['aa', 'bb', 'cc'], index=[10, 20, 30]))
​
结果:
0    1
1    2
2    3
3    4
dtype: int64
a    1
b    2
c    3
d    4
dtype: int64
10    aa
20    bb
30    cc
dtype: object

        describe 方法 --- 对Series数组的数值进行分析

import numpy as np
import pandas as pd
​
data = np.random.randint(1, 100, 10)  # 随机生成范围在1-100之间的十个整数的一维数组
print(data)
print()
a = pd.Series(data=data)  # 将随机生成的数组使用pandas模块中的Series数据结构的赋给a
print(a.describe())  # 使用describe方法对数据a进行分析
​
结果:
[25 99 77 55 35 97  3 91 25  7]
​
count    10.000000
mean     51.400000
std      37.354756
min       3.000000
25%      25.000000
50%      45.000000
75%      87.500000
max      99.000000
dtype: float64

4. DateFram 结构

        定义 --- 由多个S日二十组成,可以类比二维数组或矩阵,但必须同时具有行索引和列索引。

        格式 --- pd.DataFrame(data,index,colums)

data --- 数据

index --- 行索引 --- 可以不指定,则为0开始

columns --- 列索引 --- 可以不指定,则为0开始

        例

import numpy as np
​
data = np.random.randint(1, 100, (3, 4))
print(data)
import pandas as pd
​
df = pd.DataFrame(data, columns=['a', 'b', 'c', 'd'])
print(df)
​
结果:
[[46  8 32 47]
 [79 12  7 19]
 [46 33 50 23]]
    a   b   c   d
0  46   8  32  47
1  79  12   7  19
2  46  33  50  23 

可以调用其 --- shape,info,index,columns,values等方法返回其对应的属性

info 方法 --- 可以获取其信息概述,包括行索引、列索引、费控数据个数、数据类型信息

index、columns、values属性 --- 可以放回当前df对象的行索引、列索引、数组元素

import numpy as np
​
data = np.random.randint(1, 100, (3, 4))
print(data)
import pandas as pd
​
df = pd.DataFrame(data, columns=['a', 'b', 'c', 'd'])
​
print(df)  # 查看原始的df数据
结果:
    a   b   c   d
0  46  57  71  11
1  75  13  64  62
2   5  96  72  80
​
print('访问df的第一行数据:\n', df[0:1])  # 访问df的第一行数据,返回的是DataFrame数据对象
结果:
a   b   c   d
0  46  57  71  11
​
print('访问df列表为a的数据:\n', df.a)  # 访问df列表为a的数据,返回的是DataFrame数据对象
结果:
 0    46
1    75
2     5
​
print('访问df第二行,列名为a的数据:\n', df.at[1, 'a'])  # 访问df第二行,列名为a的数据
结果:
75
        
print('访问df第2-3行,第2-3行包围的数据:\n', df.iloc[1:3, 1:3])  # 访问df第2-3行,第2-3行包围的数据
结果:
     b   c
1  13  64
2  96  72
​
df['e'] = 10  # 添加列、索引为e、数值为10
print(df)
结果:
    a   b   c   d   e
0  46  57  71  11  10
1  75  13  64  62  10
2   5  96  72  80  10
​
df.loc[3] = 20  # 添加行,索引为3,将行的数值设置为20
print(df)
结果:
    a   b   c   d   e
0  46  57  71  11  10
1  75  13  64  62  10
2   5  96  72  80  10
3  20  20  20  20  20
​
df.at[2, 'c'] = 66  # 将索引为2的行和索引为c的列所包含的数据更改为66
print(df)
结果:
    a   b   c   d   e
0  46  57  71  11  10
1  75  13  64  62  10
2   5  96  66  80  10
3  20  20  20  20  20
​
df.drop(3, axis=0, inplace=True)  # 删除df数据中行索引为3的数据
print(df)
结果:
    a   b   c   d   e
0  46  57  71  11  10
1  75  13  64  62  10
2   5  96  66  80  10
​
df.drop('c', axis=1, inplace=True)  # 删除df数据中索引为c的数据
print(df)
结果:
    a   b   d   e
0  46  57  11  10
1  75  13  62  10
2   5  96  80  10

        DataFrame提供的数据分析方法

方法功能描述
head(n)/tail(n)返回数据钱 / 后n杭机路,当不给定n时,默认前 / 后五行
describe( )返回所有数值列的统计信息
max(axis=0)/min(axis=0)默认获得列方向各列的最大 / 最小值,当axis的值设置为1时,获得各行的最大/最小值
mean(axis=0)/median(axis=0)默认获得列方向各列的平均 / 中位数,当axis的值为1时,获得各行的平均 / 中位数
info( )对所用数据进行信息简述
isnull( )检测空值,返回一个元素类型为布尔值的DataFrame,当出现空值时返回Ture,否则返回False
dropna( )删除集合中的空值
value_counts( )查看某列中各值出现的次数
count( )对符合条件的记录统计出现的次数
sort_values( )对数据进行排序,默认为升序
sort_index( )对索引进行排序,默认为升序
group_by( )按给定的条件对数据进行分组统计

3.其他模块

1. Matplotlib 模块/ Seaborm 模块

        作用 --- 美观规范图表

2. Scipy 模块

        作用 --- 处理插值、积分、哟花、图像处理、常微分方程数值求解、信号处理等问题

3. Stasmodels 模块

        作用 --- 估计雨多不同统计模型以及进行测试和统计数据探索的类和函数

        包括 --- 线性模型、广义模型、鲁邦线性模型、线性缓和效应模型、方差分析方法、时间序列过程和状态空间模型、广义的矩量模型等

4.Scikit - Learn模块

        作用 --- 正对Python编程语言的免费软件及其学习库,具有各种分类、回归和聚类算法

        包含 --- 支持向量机、随机森林、梯度提升、k均值和DBSCAN

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White乄joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值