美文网首页
机器学习 - numpy

机器学习 - numpy

作者: creamelody | 来源:发表于2018-09-05 16:28 被阅读0次

    创建数组

    import numpy as np
    #创建一个列表
    a = [1,2,3,4]
    #转换为数组
    b = np.array(a)
    

    查看数组属性

    # 查看数组元素个数
    np.size
    #查看数组形状
    np.shape
    #查看数组维度
    np.ndim
    #查看数组元素类型
    np.dtype
    

    快速创建n维数组的api

    #创建10行10列的数值为1的矩阵
    array_one = np.ones([10,10])
    #创建10行10列的数值为0的矩阵
    array_zero = np.zeros([10,10])
    

    创建某一范围的数组

    a = np.arange(15).reshape(3,5)
    #结果
    array([[ 0,  1,  2,  3,  4],
           [ 5,  6,  7,  8,  9],
           [10, 11, 12, 13, 14]])
    

    创建随机数组np.random

    #创建指定形状的数组(范围在0到1)
    np.random.rand(10,10)
    #创建指定范围内的一个随机浮点数
    np.random.uniform(0,100)
    #创建指定范围内的一个随机整数
    np.random.randint(0,100)
    #创建正态分布的数组,给定均值、标准差、维度
    np.random.normal(1.75,0.1,(2,3))
    

    numpy计算

    学生 平时成绩 期末成绩
    1 80 88
    2 82 81
    3 84 75
    4 86 83
    5 75 81
    • 条件运算
    stu_score = np.array([[80,88],[82,81],[84,75],[86,83],[75,81]])
    stu_score>80
    #结果
    array([[False,  True],
           [ True,  True],
           [ True, False],
           [ True,  True],
           [False,  True]], dtype=bool)
    
    • 三目运算:如果满足条件,替换为a,否则替换为b
    np.where(stu_score<80,0,90)
    #结果
    array([[90, 90],
           [90, 90],
           [90,  0],
           [90, 90],
           [ 0, 90]])
    
    • 统计运算
    #指定轴最大值(参数1:数组,参数2:axis=0/1; 0表示列1表示行)
    result = np.amax(stu_score,axis = 0)#列最大值
    result = np.amax(stu_score,axis = 1)#行最大值
    #指定轴最小值(参数1:数组,参数2:axis=0/1; 0表示列1表示行)
    result = np.amin(stu_score,axis = 0)#列最小值
    result = np.amin(stu_score,axis = 1)#行最小值
    #平均值
    result = np.mean(stu_score,axis = 0)#列平均值
    result = np.mean(stu_score,axis = 1)#行平均值
    #方差
    result = np.std(stu_score,axis = 0)#列方差
    result = np.std(stu_score,axis = 1)#行方差
    
    • 数组运算
      1.数组与数的运算-加法
    stu_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
    print("加分前:")
    print(stu_score)
    # 为所有平时成绩都加5分
    stus_score[:, 0] = stus_score[:, 0]+5
    print("加分后:")
    print(stu_score)
    ##结果
    加分前:
    [[80 88]
     [82 81]
     [84 75]
     [86 83]
     [75 81]]
    加分后:
    [[80 88]
     [82 81]
     [84 75]
     [86 83]
     [75 81]]
    

    2.数组与数的运算-乘法

    stu_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
    print("减半前:")
    print(stu_score)
    # 平时成绩减半
    stu_score[:, 0] = stu_score[:, 0]*0.5
    print("减半后:")
    print(stu_score)
    ##结果
    减半前:
    [[80 88]
     [82 81]
     [84 75]
     [86 83]
     [75 81]]
    减半后:
    [[40 88]
     [41 81]
     [42 75]
     [43 83]
     [37 81]]
    

    3.数组间的加减乘除

    a = np.array([1, 2, 3, 4])
    b = np.array([10, 20, 30, 40])
    c = a + b
    d = a - b
    e = a * b
    f = a / b
    print("a+b为", c)
    print("a-b为", d)
    print("a*b为", e)
    print("a/b为", f)
    
    • 矩阵运算np.dot()
    stu_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])
    # 平时成绩占40% 期末成绩占60%, 计算结果
    q = np.array([[0.4], [0.6]])
    result = np.dot(stu_score, q)
    print("最终结果为:")
    print(result)
    ##结果
    [[ 84.8]
     [ 81.4]
     [ 78.6]
     [ 84.2]
     [ 78.6]]
    
    • 矩阵垂直拼接
    v1 = [[0, 1, 2, 3, 4, 5],[6, 7, 8, 9, 10, 11]]
    v2 = [[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]]
    # 垂直拼接
    result = np.vstack((v1, v2))
    print(result)
    ##结果
    [[ 0  1  2  3  4  5]
     [ 6  7  8  9 10 11]
     [12 13 14 15 16 17]
     [18 19 20 21 22 23]]
    
    • 矩阵水平拼接
    v1 = [[0, 1, 2, 3, 4, 5],[6, 7, 8, 9, 10, 11]]
    v2 = [[12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23]]
    # 垂直拼接
    result = np.hstack((v1, v2))
    print(result)
    ##结果
    [[ 0  1  2  3  4  5 12 13 14 15 16 17]
     [ 6  7  8  9 10 11 18 19 20 21 22 23]]
    

    numpy读取数据np.genfromtxt()

    result = np.genfromtxt("./xxx.csv",delimiter=",")
    

    如果数值据有无法识别的值出现,会以nan显示,nan相当于np.nan,为float类型.

    相关文章

      网友评论

          本文标题:机器学习 - numpy

          本文链接:https://www.haomeiwen.com/subject/glpawftx.html