python数据挖掘和分析(一)

本文介绍了数据分析的应用场景,包括分类、回归预测、聚类分析等,并详细解释了如何利用Python中的numpy和pandas模块进行数据处理与分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,数据挖掘和分析的概念我就不讲了,现在铺天盖地的数据挖掘和数据分析,大家应该都有个了解。

在数据分析的时候,我们大家最头疼的可能不是算法,而是源数据,毕竟数据的不同,算法起到的作用也不相同,不过我们只是做一个学习的话使用网上的开源数据库其实也够了,像我呢,开源数据使用的事从https://www.kaggle.com/datasets网站找的数据,当然,在公司里使用的自然是公司的数据(主要是历史数据),其实大多数公司研究算法、机器学习、数据分析等都是用的历史数据,而不是当时数据。

那么,数据分析大体会应用在哪些地方呢?我一般分为五类:分类场景、回归场景、聚类场景、关联场景和自然语言处理。当然,通俗点说就是:分类、趋势预测、预分类、关联性、语言识别。下面详细讲解一下:

分类,就是我们已经有了历史数据,然后呢,当然,这些数据对应了一个个个体,我们想对这些个体呢,进行分类,针对我们想要的类别,将这些个体划分到特定类中,这就是分类。现实生活中用到的就是:从已有用户数据中区分VIP和普通用户,静态验证码的识别等等。

回归(趋势预测),就是对连续型数据进行预测和趋势预测,形象点说就是我们现在有很多金融公司研究的量化投资就应用了这方面的技术,针对股票的行情分析,来预测股票的价值走向。

聚类(预分类),就是在我们没有历史数据的时候,我们已经了解了数据的特征,但是分类并不明确,我们也不知道能分成哪些类,但是又要给它们分类,这样的话就进行预分类,即先分类,然后看数据特征来查看他们的分类是怎么分的。这个现实中更多的是公司的需求,不局限于具体场景。

关联分析,根据历史数据来确定两个特征之间的关联性。现实的例子就是超市根据用户的购物记录,然后对关联性大的物品进行集中摆放。

自然语言处理,就是针对我们人类的语言习惯,还有语音发音等要素,结合语音识别技术来让电脑或机器人等识别人类的语音。现实中用到的比如文本相似度计算、聊天机器人等等。

下面说一下我们进行数据分析的常用python模块:

numpy模块
数据分析的基础模块,为数据提供数组支持,下边的很多模块都依赖这个模块。

pandas模块
用来进行数据探索和数据分析的模块

scipy模块
主要进行数值计算的模块,支持矩阵运算,并提供了很多高等数据处理功能,比如积分、微分、傅里叶变换等,说实话,对我这种大学高数分数不高的人对此模块一直是深恶痛绝又乐此不疲。

matplotlib模块
主要用来数据可视化,形成图形。

statsmodels模块
主要用来进行统计分析的模块。

Gensim模块
主要用来进行文本挖掘的模块。

sklearn模块
用于机器学习方面的模块。

Keras模块
用来深度学习的模块。

以上就是我们可能用到的模块,如果熟练掌握的话数据分析和数据挖掘基本不成问题。

我们来试用一下,先以numpy模块为例:
因为我使用的pycharm,而此时并没有安装numpy模块,所以我们重新安装,使用Ctrl+Alt+S来打开设置,搜索框中输入inter,找到Project Interpreter项,点击绿色+按钮,在搜索框中输入numpy,然后选中查找到的numpy模块,点击Install Package按钮,等待安装完毕,至此,我们在pycharm中添加了numpy模块。接下来使用:

import numpy
a = [22,19,9,8]
print(type(a))
x = numpy.array(a)
#创建一维数组
print(x)
print(type(x))

b = [["fadfsafs","ghdfghfjgf","kfjghjkh"],[213,3423,64],["dfasd","bvzvx"]]
print(b)
print(type(b))
print(b[0])
print(b[0][1])
y = numpy.array(b)
#创建二维数组
print(y)
print(type(y))

在对数组进行操作的时候,要注意以下几点:

关于如何取最大值和最小值,只有数字才可取
同一维度各个数组之间,长度需要一样
a.sort()排序结果也会把原来的a中的顺序改变
sorted(a)不会改变原来的顺序
取出数据的范围值的时候上限的那个位置的值是取不到的,需要加一才能取到

下面看一下pandas模块的使用:

import pandas as pda
c = pda.Series([9,2,3,8,4])
print(c)

结果如下:

0    9
1    2
2    3
3    8
4    4
dtype: int64

左边是序号,右边是值,这是使用pandas模块创建的一个序列。

d = pda.DataFrame([['3','2141','42'], ['231','432', '64'], ['423', '41', '63']])

注意啦,这里是一个小括号中有一个中括号,中括号里面包含很多用逗号分隔的中括号,第一个小括号和中括号是必须带的。要取头几行过着末尾几行的话可以使用head()和tail()方法:

print(d.head())
print(d.tail())

默认取5行。
查看数据基本信息使用describe()方法:

print(d.describe())

显示结果如下:

          0    1   2
count     3    3   3
unique    3    3   3
top     231  432  64
freq      1    1   1

使用T方法转置矩阵,注意,不加小括号:

print(d.T)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值