鱼C论坛

 找回密码
 立即注册
查看: 1579|回复: 0

数据挖掘(一)

[复制链接]
发表于 2019-8-4 14:49:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Julia999 于 2019-8-4 14:49 编辑
数据挖掘流程(一)数据读取:
读取数据,并进行展示
统计数据的各项指标
明确数据规模与要完成的任务
(二)特征理解分析
单特征分析,逐个变量分析对其结果的影响
多变量统计分析,综合考虑多种情况影响
统计绘图得出结果
(三)数据清洗与预处理
对缺失值进行填充
特征标准化/归一化
分析特征之间的相关性
(四)建立模型
特征数据与标签的准备
数据集切分
多种建模算法对比
继承策略等方案改进


Numpy:科学计算库  主要用来做矩阵运算   我们的数据就是行(样本)和列(特征)组成的,那么数据本身就是一个矩阵
Pandas:数据分析处理库  (相当于在Numpy的基础上再对函数进行了封装)
Matplotlib:可视化库
Seaborn-可视化库 更简单的可视化库封装上Matplotlib基础之上
Scikit-Learn-机器学习库 非常实用的机器学习库,这里面包含了基本上所有的机器学习算法
import numpy

data=numpy.genfromtxt('haberman1.txt',delimiter=',',dtype=str)
print(type(data))
print(data)
print(help(numpy.genfromtxt))
#将第2行3列的数据取出来
data1=data[1,2]
print(data1)
#取出第一列和第二列
data2=data[:,0:1]


vector=numpy.array([1,2,3,4])
matrix=numpy.array([1,2,3,4],[5,6,7,8])
print(vector)
print(matrix)
print(vector.shape)
print(matrix.shape)
print(vector.dtype)
#判断vector中有没有10
vector==10
#可以把返回的bool值当成索引
equal_to_ten=(vector==10)
print(equal_to_ten)
print(vector[equal_to_ten])

equal_to_ten_and_equal_to_five=(vector==10)&(vector==5)
print(equal_to_ten_and_equal_to_five)
equal_to_ten_or_equal_to_five=(vector==10)|(vector==5)
print(equal_to_ten_or_equal_to_five)

vector2=numpy.array(["1","2","3","4"])
print(vector2.dtype)
print(vector2)
#类型转换
vector2=vector2.astype(float)
print(vector2.dtype)
print(vector2)

#求极值
vector.min()

#按行求和或者是按列进行求和
matrix.sum(axis=1)  #按行求和
matrix.sum(axis=0)
import numpy as np

print(np.arange(15))
a=np.arange(15).reshape(3,5)
print(a)
print(a.ndim) #维度
print(a.dtype.name)
print(a.size)  #有多少元素

#初始化
np.zeros((3,4))
np.ones((2,3,4),dtype=np.int32)  #三维

#构造出固定范围元素  最后一个参数表示多少个一加
np.arange(10,30,5)

np.random.random((2,3))
import numpy as np
from numpy import pi
#最后一个参数表示我需要产生多少个元素,间隔是平均取的
np.linspace(0,2*pi,100)
#矩阵的点乘和叉乘
A=np.array([1,2],
           [3,4])
B=np.array([1,1],
           [2,2])
#对应位置的元素相乘得到的矩阵
print(A*B)
#矩阵的乘法
print(A.dot(B))
print(np.dot(A,B))
import numpy as np
#np.floor表示向下取整
a=np.floor(10*np.random.random(3,4))
print(a)
#将一个矩阵拉成一个向量
print(a.ravel())
#再将拉成向量的矩阵重新变成矩阵
a.shape(6,2)
print(a)
#转置
print(a.T)
import numpy as np
a=np.floor(10*np.random.random(2,2))
b=np.floor(10*np.random.random(2,2))
print(a)
print(b)
#hstack横拼接
#print(np.hstack((a,b)))
#vstack纵拼接
print(np.vstack((a,b)))

#分割
c=np.floor(10*np.random.random(2,12))
print(c)
#hsplit横着切
#np.hsplit(c,3)将c平均切分成3份
print(np.hsplit(c,3))
#np.hsplit(c,(3,4)在指定位置切刀
print(np.hsplit(c,(3,4)))
#vsplit竖着切

复制:
import numpy as np
a=np.arrange(12)
b=a
b.shape(3,4)
#发现改变b的值a的也会改变,并且两个变量的id也是一样的
print(a.shape)
print(id(a))
print(id(b))
#浅复制
#a和c的不是同一个id,但是a和c是共用了一堆值,所以改变其中一个另外一个也发生改变
c=a.view()
print(c is a)
c.shape=(2,6)
print(c.shape)
print(a.shape)
print(id(c))
print(id(a))

#如何让他们指向不一样,又使他们的改变不会影响到另外一个
d=a.copy()
print(d is a)
d[0,0]=999
print(d)
print(a)

排序和索引:
import numpy as np
data=np.sin(np.arange(20)).reshape(5,4)
print(data)
#找到索引最大所在的位置
#axis=0按列进行计算
ind=data.argmax(axis=0)
print(ind)
#找到每一列中最大的数
data_max=data[ind,range(data.shape[1])]
print(data_max)

a=np.arange(0,40,10)
print(a)
#行扩展成原来的两倍,列也扩展成原来的两倍
b=np.tile(a,(2,2))
print(b)

#排序
c=np.array([4,3,5],[1,2,1])
print(c)
#默认是从小到大进行排序 按照横向排序
d=np.sort(a,axis=1)
print(d)

#求最小值的索引
j=np.argsort(a)
print(j)
print(a[j])


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 18:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表