Python机器学习常用库及其功能简介


1 Numpy

  Numpy 常用于进行与线性代数相关的运算,支持高维数组、矩阵等数据运算,并且提供了大量的相关函数。Numpy 内部运算由C语言实现,因此运算速度十分快。想要使用它首先要导入 Numpy 库,一般约定导入时的别名为np

    import numpy as np

  Numpy 中有两种重要的数据类型,分别是 数组矩阵。首先创建一个二维数组(numpy.ndarray),打印该数组的元素类型、形状、大小。

    array=np.arange(6).reshape(2,3)
    print(array)
    print(array.dtype)
    print(array.shape)
    print(array.size)

  通过 Numpy 种的数组可以 批量 进行数据运算,下面对数组与标量进行数学运算,这些运算相当于对数组中的每一个元素都进行运算:

    array1=array+2
    array2=array**2
    print(array1)
    print(array2)

  Numpy 中的数组也可以进行 索引和切片。对于一维数组而言,索引和切片方式与 Python 中的 List 相同。对于高维数组,可以使用逗号隔开不同维度的索引来访问某个元素:

    print(array[1,2])

  如果忽略后面的索引,会返回比高维数组纬度低一点的数组

    print(array[1])

  当数组为二维数组时,可以把它看作一个矩阵,先创建一个二维数组:

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

  对二维数组进行转置与矩阵乘法(点积):

    arr1=arr.T
    print(np.dot(arr,arr1))

  numpy.linalg 中包含了一些常用的运算函数,如求矩阵的行列式、求矩阵的逆、计算奇异值(SVD)分解等,如:

    from numpy.linalg import inv
    a=np.array([[3,1],[2,4]])
    b=inv(a)
    print(a)
    print(b)
    print(np.dot(a,b))

2 Pandas

  Pandas 是基于 Numpy 构建的,可以用于简单、快捷地处理大型数据集,对数据集进行关系型运算,它可以灵活地处理 时间序列缺失数据
  首先导入 Pandas 库,一般约定导入时的别名为pd

    import pandas as pd

  Pandas 中有两种重要的数据结构:SeriesDataFrame
  Series 由一组 数据 与这组数据的 索引 组成。下面利用一组数据生成一组 Series:

    series=pd.Series([4,1,2,4])
    print(series)

  打印输出 Series 可以看到创建的数据及索引 ,由于创建时没有指定,函数会自动创建一组以0开始的自然数序列索引。可以在使用 Series 时指定 index 参数 创建索引,也可以在创建后根据需要自行更改索引:

    myindex=['a','b','c','d']
    series.index=myindex
    print(series)

  对数据进行索引、筛选、排序:

    print(series['a'])
    print(series[series>1])
    print(series.sort_values())

  还可以方便地使用 Numpy 库的函数批量地处理这些数据

    print(np.exp(series))

  除了 Series 外,Pandas 还提供了一种更同样、类似于表格类型的数据结构 DataFrame。首先用字典创建一个 DataFrame:

    df=pd.DataFrame({'name':['vivi','cici','gigi','cici'],'age':[17,19,18,19],'height':[1.6,1.7,1.8,1.7]})
    print(df)

  可以把 DataFrame 看作是多列的 Series,这些 Series 共用一个索引 index,使用表名和列名可以获取一个单独的 Series:

    print(df['age'])

  可以使用 Pandas 进行数据清洗,通过 pd.read_csv()函数,可以读取 .csv 文件里保存的表格,可以指定文件路径、文件编码等参数:

    df=pd.read_csv(r"test.csv",encoding="utf-8")

  读取完数据后可以使用head()函数查看前几行数据:

    print(df.head())

  使用drop_duplicates()函数可以删除重复的样本:

    # 删除姓名相同的样本,保留最后一项,并更新 DataFrame
    df.drop_duplicates(subset=["name"],inplace=True,keep="last")
    print(df)

  使用drop()函数可以删除指定的列:

    #删除 id 列,并更新 DataFrame
    df.drop(columns=['id'],inplace=True)
    print(df)

  还可以根据需求筛选数据:

    #筛选 name 字段以 'ci' 开头的数据
    sub_df1=df[df['name'].str.startswith('ci')]
    #筛选 age 列为18,height 列为1.7的数据
    sub_df2=df[(df['age']==18)&(df['height']==1.7)]
    print(sub_df1)
    print(sub_df2)

3 Matplotlib

  Matplotlib.pyplot 是一组命令样式函数,使 Matplotlib 像 MATLAB 一样工作。
  先导入 Matplotlib.pyplot 库,一般约定导入时的别名为plt

    import matplotlib.pyplot as plt

  下面画一个简单图

    import matplotlib.pyplot as plt
    import numpy as np

    x = np.linspace(0,2*np.pi,100)
    y = np.sin(x)
    plt.plot(x,y)
    plt.show()

总结起来就是五步:

  • 创建一个图纸 (figure)
  • 在图纸上创建一个或多个绘图 (plotting) 区域(也叫子图,坐标系/轴,axes)
  • 在 plotting 区域上描绘点、线等各种 marker
  • 为 plotting 添加修饰标签(绘图线上的或坐标轴上的)
  • 其他各种 DIY

详细可参考文档:Python--Matplotlib(基本用法)

猜你喜欢

转载自blog.csdn.net/weixin_33728268/article/details/91010203
今日推荐