为了账号安全,请及时绑定邮箱和手机立即绑定

Python数据分析-基础技术篇

难度初级
时长 2小时42分
学习人数
综合评分8.40
77人评价 查看评价
9.0 内容实用
8.1 简洁易懂
8.1 逻辑清晰
  • #预处理
    from sklearn.datasets import load_iris
    iris = load_iris()
    from sklearn.cross_validation import train_test_split
    train_data, test_data, train_target, test_target = train_test_split(iris.data, iris.target, \
    test_size=0.2, random_state=1) #划分训练集与验证集
    
    #建模:分类器
    from sklearn import tree
    clf = tree.DecisionTreeClassifier(criterion="entropy")
    clf.fit(train_data, train_target)
    y_pred = clf.predict(test_data)
    
    #验证
    from sklearn import metrics
    print(metrics.accuracy_score(y_true=test_target,y_pred=y_pred) #准确率
    print(metrics.confusion_matrix(y_true=test_target,y_pred=y_pred)) #混淆矩阵:横轴实际,纵轴预测
    
    #结果输出到文件
    with open("","w") as fw:
        tree.export_graphviz(clf, out_file=fw)


    查看全部
  • #定义时间序列
    s = pd.Series([i*2 for i in range(1,11)])
    
    dates = pd.date_range("20170301",periods=8) #从20170301开始的8天
    #第一种定义表的方式:8行5列,索引值(行名)是dates,属性值(列名)是A~E
    df = pd.DataFrame(np.random.randn(8,5),index=dates,columns=list("ABCDE"))
    
    #第二种定义表的方式:
    df.DataFrame({"A":1,"B":pd.Timestamp("20170301"),"C":pd.Series(1,index=list(range(4)),dtype="float32"),\
    "D":np.array([3]*4,dtype="float32"),"E":pd.Categorical(["police","student","teacher","doctor"])})
    
    print(df.head(3)) #打印前三行
    print(df.tail(3)) #打印后三行
    print(df.index)
    print(df.values) #打印结果是数组
    print(df.T) #索引和属性互换
    print(df.sort(columns="C"))
    print(df.sort_index(axis=1,ascending=False)) #对列索引(axis=1-->属性值)进行降序排序
    print(df.describe()) #打印出count、mean、std、min、max、25%、50%、75%
    
    #切片
    print(df["A"]) #A列
    print(df[:3]) #前三行
    print(df["20170301":"20170304"])
    print(df.loc[dates[0]])
    print(df.loc["20170301":"20170304",["B","D"]])
    print(df.at[dates[0],"C"])
    print(df.iloc[1:3,2:4])
    print(df.iloc[1,4])
    print(df.iat[1,4])
    print(df[df.B>0][df.A<0])
    print(df[df>0]) #小于0的返回NaN
    print(df[df["E"].isin([1,2])])
    
    #设置
    s1 = pd.Series(list(range(10,18)),index=pd.date_range("20170301",periods=8))
    df["F"] = s1
    df.at[dates[0],"A"]=0
    df.loc[:,"D"] = np.array([4]*len(df))
    
    #拷贝
    df2 = df.copy()
    df2[df2>0] = -df2
    print(df2)
    
    #缺失值处理
    df1 = df.reindex(index=dates[:4],columns=list("ABCD")+["G"])
    df1.loc[dates[0]:dates[1],"G"] = 1
    print(df1.dropna()) #删除缺失值所在行
    print(df1.fillna(value=2)) #缺失值填充2
    
    #统计指标
    print(df.mean()) #每列的平均值
    print(df.var())
    s = pd.Series([1,2,3,np.nan,5,7,9,10],index=dates)
    print(s.shift(2)) #所有值后移两位,前两位补NaN,多的值删除
    print(s.diff()) #不填表示一阶,填的数字表示多阶
    print(s.calue_counts()) #每个值出现的次数
    print(df.apply(np.cumsum))
    print(df.apply(lambda x:x,max()-min()))
    
    #表的拼接
    pieces = [df[:3],df[-3:]]
    left = pd.DataFrame({"key":["x","y"],"value":[1,2]})
    right = pd.DataFrame({"key":["x","z"],"value":[3,4]})
    print(pd.merge(left,right,on="key",how="left")) #how="inner":所有缺失值都删掉;"outer"所有缺失值都保留
    df3 = pd.DataFrame({"A":["a","b","c","b"],"B":list(range(4))})
    print(df3.groupby("A").sum()) #将A列每种属性值求和


    查看全部
    1. numpy:数据结构基础

    2. scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)

    3. matplotlib:丰富的可视化套件(三维图、饼图、可视图等)

    4. pandas:基础数据分析套件(表)

    5. scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)

    6. keras:人工神经网络


    查看全部
    0 采集 收起 来源:概述

    2018-07-23

  • 数据分析用的各种包

    查看全部
    0 采集 收起 来源:初识numpy

    2018-07-20

  • 1
    查看全部
  • #numpy技巧
    concatenate((lst1, lst2), axis=0) #横向追加
    hstack((lst1, lst2)) 
    vstack((lst1, lst2)) #纵向追加
    split(lst1, 4) #把lst1数组分成4份
    solve(x, y) #x*b=y,解方程得b 
    
    #matplotlib绘图
    import numpy as np
    import matplotlib.pyplot as plt
    x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
    c, s = np.cos(x), np.sin(x)
    plt.figure(1)
    plt.plot(x, c, color="blue", linewidth=1.0, line, label="COS", alpha=0.5)
    plt.plot(x, s, "r*", label="SIN") #红色*
    plt.title("COS $ SIN")
    ax = plt.gca() #轴的编辑器
    ax.spines["right"].set_color("none") #隐藏上、右两个外框
    ax.spines["top"].set_color("none")
    ax.spines["left"].set_position(("data",0)) #将下、左两个外框设置到数据域的0位置
    ax.spines["bottom"].set_position(("data",0))
    ax.xaxis.set_ticks_position("bottom") #坐标轴的数字显示在横轴下面和纵轴左面
    ax.yaxis.set_ticks_position("left")
    #设置坐标轴[标识的位置], [标识的内容]
    plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']
    plt.yticks(np.linspace(-1, 1, 5, endpoint=True))
    for label in ax.get_xticklabels()+ax.get_yticklabels():
        label.set_fontsize(16)
        label.set_bbox(dict(facecolor="white", edgecolor="None", alpha=0.2) #facecolor背景颜色,edgecolor边缘颜色,alpha透明度
    plt.legent(loc="upper left")
    plt.grid()
    plt.axis([-1, 1,-0.5, 1) #设置显示范围
    plt.fill_between(x, np.abs(x)<0.5, c, c>0.5, color="green", alpha=0.25) #填充功能
    #c>0.5时才填充,且填充的范围是|x|<0.5与c之间。|x|<0.5时-->1,填充c到1之间;|x|>=0.5时-->0,填充0到c之间
    t=1
    plt.plot([t, t], [0, np.cos(t)], "y", linewidth=3, line) #添加注释(y代表黄色)
    plt.annotat("cos(1)", xy=(t, np.cos(1)), xycoords="data", xytxt=(+10, +30), textcoords="offset points", arrowprops=dict(arrow, connection)) #
    plt.show()
    
    #matplotlib绘制散点图
    fig = plt.figure()
    ax = fig.add_subplot(3, 3, 1)
    n = 128
    X = np.random.normal(0, 1, n)
    Y = np.random.normal(0, 1, n)
    T = np.arctan2(Y, X)
    #plt.axes([0.025, 0.025, 0.95, 0.95])
    ax.scatter(X, Y, s=75, c=T, alpha=0.5) #s:size,c:color
    plt.xlim(-1.5, 1.5), plt.xticks([])
    plt.ylim(-1.5, 1.5), plt.yticks([])
    plt.axis()
    plt.title("scatter")
    plt.xlabel("x")
    plt.ylabel("y")
    plt.show()
    查看全部
    0 采集 收起 来源:基本线图绘制

    2018-07-12

    1. numpy:数据结构基础

    2. scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)

    3. matplotlib:丰富的可视化套件(三维图、饼图、可视图等)

    4. pandas:基础数据分析套件(表)

    5. scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)

    6. keras:人工神经网络

    7. 科学计算工具Anaconda

    查看全部
    0 采集 收起 来源:概述

    2018-07-11

  • #keras数据分析官网:

    http://keras.io/


    查看全部
    0 采集 收起 来源:认识Keras

    2018-07-08

  • #scikit-learn数据分析官网:

    http://scikit-learn.org/


    查看全部
    0 采集 收起 来源:认识scikit-learn

    2018-07-08

  • #pandas数据分析官网:
    http://pandas.pydata.org/ 

    查看全部
    0 采集 收起 来源:认识pandas

    2018-07-08

  • #matplotlib画图功能
    #line
    impor numpy as np
    def main():
        import matplotlib.pyplot as plt
        x=np.linspace(-np.pi,np.pi,256,endpoint=Ture)
        c,s=np.cos(x),np.sin(x)
        plt.figure(1)
        plt.plot(x,c,color="blue",linewidth=1.0,line,label="COS",alpha=0.5)
        plt.plot(x,s,"r*",label="SIN")
        plt.title("COS&SIN")
        ax=plt.gce()
        ax.spines["right"].set_color("none")
        ax.spines["top"].set_color("none")
        ax.spines["left"].set_position(("data",0))
        ax.spines["bottom"].set_position(("data",0))
        ax.xaixs.set_ticks_position("bottom")
        ax.yaxis.set_ticks_position("left")
    plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$,r'$-\pi/2$,r'$0$,r'$+\pi/2$,r'$+\pi$'])
    plt.yticks(np.linspace(-1,1,5,endpoint=Ture))
    for lable in ax.get_xtickelables()+ax.get_yticklable():
        lable.set_fontsize(16)
        lable.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2))
     plt.legend(loc="upper left")
     plt.grid()
     plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="green",alpha=0.25)
     t=1
     plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle='--')
     plt.annotate("cos(1)",xy=(t,np.cos(1),xycoords="data",xytext=(+10,+30),textcoords="offset points",arrowprpos=(arrow,connectionstule="arc3,rad=.2")
        plt.show()
    if __name__=="__main__":

     

    查看全部
    0 采集 收起 来源:基本线图绘制

    2018-07-08

  • #matplotlib画图功能
    #bar
    def main():
    import matplotlib pyplot as plt
    fig.add_subplot(332)
    n=10
    X=np.arange(n)
    Y1=(1-X/float(n)*np.random.uniform(0.5,1.0,n)
    Y2=(1-X/float(n)*np.random.uniform(0.5,1.0,n)
    plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white')
    plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')
    for x,y in zip(X,Y1):
        plt.text(x+0.4,y+0.05,'%2f'%y,ha='center',va='bottom')
        plt.text(x+0.4,-y-0.05,'%2f'%y,ha='center',va='bottom')
        plot.show()
      if_name_=="_main_";
    main()

     

    查看全部
  • #matplotlib 画图功能
    # scatter
    def main():
    import matplotlib pyplot as plt
    fig=plt.figure()
    fig.add_subpolt(3,3,1)
    n=128
    X=np.random.normal(0,1,n)
    Y=np.random.normal(0,1,n)
    T=np.arctan2(Y,X)
    plt.axes([0.025,0.025,0.95,0.95])
    plt.scatter(X,Y,s=75,c=T,alpha=.5)
    plt.xlim(-1.5,1.5),plt.xticks([])
    plt.ylim(-1.5,1.5),plt.yticks([])
    plt.axis()
    plt.title("scatter")
    plt.xlabel("x")
    plt.ylable("y")
    plt.show()
    if_name_=="_main_";
    main()

     

    查看全部
  • 快乐
    查看全部
    0 采集 收起 来源:pandas基本操作

    2018-06-11

  • python之数据分析概述:

    python数据分析大家族:

    ① numpy:数据结构基础

    ② scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)

    ③ matplotlib:丰富的可视化套件(三维图、饼图、可视图等)

    ④ pandas:基础数据分析套件(表)

    ⑤ scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)

    ⑥ keras:人工神经网络 



    查看全部
    5 采集 收起 来源:概述

    2018-05-26

举报

0/150
提交
取消
课程须知
需要对python语法和基本数据结构有所了解,对数据分析感兴趣!
老师告诉你能学到什么?
1、数据分析的一般步骤 2、numpy简介与基本使用 3、matplotlib简介与基本使用 4、scipy简介与基本使用 5、pandas简介与基本使用 6、机器学习的一般概念 7、scikit-learn的简介、使用示例与学习方法 8、keras的简介与一般用法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!