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

Python数据分析-基础技术篇

难度初级
时长 2小时42分
学习人数
综合评分8.43
67人评价 查看评价
9.2 内容实用
8.1 简洁易懂
8.0 逻辑清晰
  • import numpy as np
    import pandas as pd
    
    
    s = pd.Series([i * 2 for i in range(1, 11)])
    print(type(s))
    print(s)
    dates = pd.date_range("20170301", periods=8)
    df = pd.DataFrame(np.random.randn(8, 5), index=dates, columns=list("ABCDE"))
    print(df["A"])
    print(df[:3])  # 打印前3行
    print(df["20170301":"20170302"])  # 打印对应范围的行
    print(df.loc[dates[0]])  # 答应某一行
    print(df.loc["20170301":"20170303", ["B", "D"]])  # 打印对应范围的行及其对应的属性值
    print(df.at[dates[0], "C"])  # 打印某行某列的值
    print(df.iloc[1:3])  # 打印1:3行
    print(df.iloc[1:3, 2:4])  # 打印1:3行 2:4列
    print(df.iat[1, 3])  # 打印1:3行
    print(df[df.B > 0][df.A < 0])
    print(df[df < 0.0])
    print(df[df["E"].isin([1, 2])])
    
    # set
    sl = pd.Series(list(range(10, 18)), index=pd.date_range("20170301", periods=8))
    df["F"] = sl  # 插入一列
    print(df)
    df.at[dates[0], "A"] = 0
    print(df)
    df.iat[1, 1] = 1
    df.loc[:, "D"] = np.array([4] * len(df))
    print(df)
    df2 = df.copy()
    df2[df2 > 0] = -df2  # 将所有正数变为负数
    print(df2)
    
    # Miss values
    df1 = df.reindex(index=dates[:4], columns=list("ABCD") + ["G"])
    df1.loc[dates[0]:dates[1], "G"] = 1
    print(df1)
    print(df1.dropna())  # 丢弃缺失
    print(df1.fillna(value=2))  # 缺失值补2
    
    # Statistic
    print(df.mean())  # 平均值
    print(df.var())  # 方差
    ss = pd.Series([1, 2, 4, np.nan, 5, 7, 9, 10], index=dates)
    print(ss)
    print(ss.shift(2))  # 把所有的值移后2
    print(s.diff())  # 差分,不填数字则为一阶
    print(s.value_counts())  # 每个值出现的次数
    print(df)
    print(df.apply(np.cumsum))  # 累加
    print(df.apply(lambda x: x.max() - x.min()))  # 极差
    
    # Concat
    pieces = [df[:2], df[-2:]]
    print(pd.concat(pieces))  # 拼接前2行和后2行
    left = pd.DataFrame({"key": ["x", "y"], "value": [1, 2]})
    right = pd.DataFrame({"key": ["x", "z"], "value": [3, 4]})
    print("left", left)
    print("right", right)
    print(pd.merge(left, right, on="key", how="right"))  # 拼接,how:拼接方式,inner(去掉缺省值,outer(保留所有缺省值
    df3 = pd.DataFrame({"A": ["a", "b", "c", "b"], "B": list(range(4))})
    print(df3)
    print(df3.groupby("A").sum())  # 对A聚合,两个B相加
    
    # #Reshape
    import datetime
    
    df4 = pd.DataFrame({'A': ['one', 'one', 'two', 'three'] * 6,  # 此表格共有24行
    
                        'B': ['a', 'b', 'c'] * 8,
    
                        'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4,
    
                        'D': np.random.randn(24),  # 随机数
    
                        'E': np.random.randn(24),
    
                        'F': [datetime.datetime(2017, i, 1) for i in range(1, 13)] +
    
                             [datetime.datetime(2017, i, 15) for i in range(1, 13)]})
    
    # pivot_table透视表
    print(df4)
    print(pd.pivot_table(df4, values="D", index=["A", "B"], columns=["C"]))  # 输出值,输出项,列值
    
    # time series
    t_exam = pd.date_range("20170301", periods=10, freq="S")
    print(t_exam)
    
    # 画图
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("20170301", periods=1000))
    ts = ts.cumsum()
    from pylab import *
    ts.plot()
    show()
    
    # 文件操作
    df6= pd.read_excel("./panda.xlsx","Sheet1")
    print(df6)
    df6.to_csv("./panda.csv")


  • #encoding-utf-8

    import numpy as np

    import pandas as pd


    # 机器学习分3个步骤:数据预处理、数据建模、结果验证

    def main():

    #Pre-processing 预处理

    from sklearn.datasets import load_iris

    iris=load_iris() #直接引入iris数据集 data:150个,分4种属性值;target标度分三类0,1,2

    print(iris)

    print(len(iris["data"])) #原始数据150个

    from sklearn.model_selection import train_test_split

    # 数字氛围、 测试数据、  验证数据、                                                    验证数据集占整个的20%,随机选择验证数据                 

    train_data,test_data,train_target,test_target=train_test_split(iris.data,iris.target,test_size=0.2,random_state=1)


    # Model 建模

    from sklearn import tree #引入决策树

    # 决策树分类器  标准=熵

    clf=tree.DecisionTreeClassifier(criterion="entropy")

    # fit 用训练集进行训练

    clf.fit(train_data,train_target)

    y_pred=clf.predict(test_data)#通过验证集进行预测


    #Verify \验证:1准确率;2混淆矩阵

    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))

    # 决策树直接输出文件export_graphviz

    with open("./data/tree.dot","w") as fw:

    tree.export_graphviz(clf,out_file=fw)







    if __name__=="__main__":

    main()


  • #statistic 

    print(df.mean()) #均值

    print(df.var()) #方差

    print("~~~~~~~~~~~~~~~~~~~~************")

    s=pd.Series([1,2,2,np.nan,5,7,9,10],index=dates) #构架series

    print(s)

    print(s.shift(2))

    print(s.diff())

    print(s.value_counts()) #返回值可以用来绘制直方图

    print(df.apply(np.cumsum)) #累加

    print(df.apply(lambda x:x.max()-x.min())) #极差:每个属性最大值减最小值


    #concat

    pieces=[df[:3],df[-3:]] #用下标获取到dataframe的一部分,前三行和后三行拼接在一起

    print(pd.concat(pieces))

    left=pd.DataFrame({"key":["x","y"],"value":[1,2]}) #建立两个dataframe

    right=pd.DataFrame({"key":["x","z"],"value":[3,4]})

    print("LEFT:",left)

    print("RIGHT:",right)

    print(pd.merge(left,right,on="key",how="inner"))

    df3=pd.DataFrame({"A":["a","b","c","b"],"B":list(range(4))})

    print(df3.groupby("A").sum())


    # #Reshape

    import datetime

    df4=pd.DataFrame({'A':['one','one','two','three']*6, #此表格共有24行

    'B':['a','b','c']*8,

    'C':['foo','foo','foo','bar','bar','bar']*4,

    'D':np.random.randn(24), #随机数

    'E':np.random.randn(24),

    'F':[datetime.datetime(2017,i,1) for i in range(1,13)]+

    [datetime.datetime(2017,i,15) for i in range(1,13)]})

    # pivot_table透视表

    print(pd.pivot_table(df4,values="D",index=["A","B"],columns=["C"]))



  • #4--Linear

    from scipy import linalg as lg

    arr=np.array([[1,2],[3,4]])

    print("Det:",lg.det(arr))

    print("Inv:",lg.inv(arr))

    b=np.array([6,14])

    print("Sol:",lg.solve(arr,b)) #解线性方程组

    print("Eig:",lg.eig(arr)) #特征值

    print("LU:",lg.lu(arr)) #矩阵分解,lu、qr、svd、schur

    print("QR:",lg.qr(arr))

    print("SVD:",lg.svd(arr))

    print("Schur:",lg.schur(arr))


  • scipy 库是 numpy 基础上增加的众多数学,科学以及工程计算常用的的库函数,例如线性代数,常微分方程,信号处理,图像处理,稀疏矩阵 等

  • 模块介绍:numpy、scipy、matplotlib

    04:35
    看视频
  • https://matplotlib.org

    plt.figure(1)是新建一个名叫 Figure1的画图窗口,plt.plot(x,c)是在画图窗口里具体绘制横轴为x 纵轴为c的曲线

  • # df = pd.Series([1,2,4,np.nan,5,6,7,10],index=dates)

    df.mean() ## 均值

    df.vaar() ## 方差

    df.shift(2) ## 右移两位

    df.value_counts() ## 统计出现的值的次数 -- 直方图

    df.apply(np.cumsum) #累加值


    ## Concat

    pieces = [df[:3],df[-3:]]

    pd.concat(pieces))


    left join 


    05:18
    看视频
  • numpy (Numerical Python):数据结构基础

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

    matplotlib:丰富的可视化套件

    pandas:基础数据分析套件

    scikit-learn:强大的数据分析建模库

    keras:人工神经网络


  • #numpy的其他操作    print("FFT:")    print (np.fft.fft(np.array([1,1,1,1,1,1,1,])))  #阶跃响应    print (np.corrcoef([1, 0, 1],[0, 2, 1])) # 皮尔逊相关系数计算    print (np.poly1d([3,1,3])) # 生成一元多次函数

    print(np.corrcoef([1,0,1],[0,2,0])) #打印相关系数 print(np.poly1d([2,1,3]))  #生成一元多次函数 2x**2 + 1x + 3 ,他生成一元二次函数

  • import numpy as np导入的是numpy包。通过np.linalg.xxx()来使用linalg的函数。

    import numpy.linalg导入的是numpy中的linalg包。通过numpy.linalg.xxx()来使用linalg的函数。

    from numpy.linalg import *是导入numpy.linalg下的所有函数。通过xxx()来使用linalg的函数。


  • np.concatenate 两个lst的追加 np.vstack 追加  分成两行 np.hstack  同concatenate的结果 np.spilt 分成几份数组 copy(lst1) 拷贝

  • print (np.zeros([2, 4]))#输出元素都为0的2行4列数组    print (np.ones([3, 5]))#输出元素都为1 的2行4列数组    print ("Rand:")    print (np.random.rand(2, 4))#输出2行4列的随机数组    print (np.random.rand())#生成一个随机数    print (np.random.randint(1, 14, 5))#在1到14之间生成5个随机数

  • List每次处理对象会判断数据类型,可存放多种类数据,但维护成本较高

    shape表示几行几列 ndim表示维数 dtype表示元素的数据类型 itemsize表示元素的大小,比如float就是8个字节 size表示元素组合总的个数

    1. numpy

    2. 关键词:  开源  数据计算扩展

    3. 功能:     ndarray   多维操作   线性代数

    4. 官网:   http://www.numoy.org/


  • numpy (Numerical Python):数据结构基础

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

    matplotlib:丰富的可视化套件

    pandas:基础数据分析套件

    scikit-learn:强大的数据分析建模库

    keras:人工神经网络

    Python环境搭建

    平台:Windows、Linux、 macOS

    科学计算工具 :anaconda


  • numpy (Numerical Python):数据结构基础

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

    matplotlib:丰富的可视化套件

    pandas:基础数据分析套件

    scikit-learn:强大的数据分析建模库

    keras:人工神经网络


    • Python环境搭建

    • 平台:Windows、Linux、 macOS

    • 科学计算工具 :anaconda


首页上一页1234567下一页尾页

举报

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

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