美文网首页
Python数据分析与机器学习2-Numpy

Python数据分析与机器学习2-Numpy

作者: 只是甲 | 来源:发表于2022-07-05 15:19 被阅读0次

    一. Numpy工具包介绍

    NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。

    Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。

    二. 数据源介绍

    world_alcohol.txt


    image.png

    三. Numpy实操

    3.1 属性及赋值操作

    代码:

    import numpy
    # 通过numpy生成一个向量
    vector = numpy.array([1, 2, 3, 4])
    # 通过numpy生成一个矩阵
    matrix = numpy.array([[5, 10, 15], [20, 25, 30]])
    
    # 输出向量和矩阵
    print (vector)
    print (matrix)
    print("###########################")
    
    # 输出矩阵和向量的类型
    print (vector.dtype)
    print (matrix.dtype)
    
    # 输出矩阵和向量中有多少元素
    print("###########################")
    print(vector.shape)
    print(matrix.shape)
    
    

    测试记录:

    image.png

    3.2 数据索引方法

    numpy的索引下标都是从0开始的,行和列均是从0开始计算的
    代码:

    import numpy
    
    vector = numpy.array([5, 10, 15, 20])
    # 输出0,1,2 共3列
    print(vector[0:3])
    
    print("###########################")
    
    matrix = numpy.array([
                        [5, 10, 15], 
                        [20, 25, 30],
                        [35, 40, 45]
                     ])
    # 矩阵是二维的,前面的参数代表行,后面的代表列,:表示所有
    print(matrix[:,1])
    print("###########################")
    print(matrix[:,0:2])
    print("###########################")
    print(matrix[1:3,0:2])
    

    测试记录:

    image.png

    3.3 数值计算方法

    矩阵中的值可以用于计算,矩阵有多行多列,类似一个二维数组,只能按照行或列依次来判断,这个有点麻烦。

    代码:

    import numpy
    
    matrix = numpy.array([
                        [5, 10, 15], 
                        [20, 25, 30],
                        [35, 40, 45]
                     ])
    # 判断矩阵中的某一行是否包含25,如包含,则true,否则为false
    second_column_25 = (matrix[:,1] == 25)
    print (second_column_25)
    
    print ("##############################")
    print(matrix[second_column_25, :])
    
    print ("##############################")
    # 判断还可以是组合条件
    vector = numpy.array([5, 10, 15, 20])
    equal_to_ten_and_five = (vector == 10) & (vector == 5)
    print (equal_to_ten_and_five)
    print ("##############################")
    equal_to_ten_or_five = (vector == 10) | (vector == 5)
    print (equal_to_ten_or_five)
    print ("##############################")
    print (vector[equal_to_ten_or_five])
    

    测试记录:

    image.png

    3.4 排序操作

    数组中我们经常会使用到排序的操作

    代码:

    import numpy as np
    a = np.array([[4, 3, 5], [1, 2, 1]])
    print (a)
    print ("##############################")
    # axis=1代表按行排序
    b = np.sort(a, axis=1)
    print (b)
    print ("##############################")
    # axis=0代表按列排序
    c = np.sort(a, axis=0)
    print (c)
    

    测试记录:

    image.png

    3.5 数组形状

    我们常用的查看数组的维度,数值值的类型,数组元素的个数等

    代码:

    import numpy as np
    a = np.array([[4, 3, 5], [1, 2, 1]])
    print (a)
    print ("#######################################")
    # 输出矩阵的行数和列数
    print (a.shape)
    print ("#######################################")
    # 输出数组的维度
    print (a.ndim)
    print ("#######################################")
    # 输出数组的类型
    print (a.dtype.name)
    print ("#######################################")
    # 输出数组元素的个数
    print (a.size)
    

    测试记录:

    image.png

    3.6 数组生成常用函数

    有时候我们需要按照一定的规则生成数组

    代码:

    import numpy as np
    # arange(15)代表0-14总共15个整数
    # reshape(3,5)代表3行5列
    a = np.arange(15).reshape(3, 5)
    print(a)
    
    print ("#########################")
    # 输出3行4列全是0的数组
    print(np.zeros ((3,4))) 
    
    print ("#########################")
    # 输出2个3行4列全是1的数组的组合数组
    print(np.ones( (2,3,4), dtype=np.int32 ))
    
    print ("#########################")
    # 输出从>=10 and < 30 步长为5的序列数组
    print(np.arange( 10, 30, 5 ))
    

    测试记录:

    image.png

    3.7 随机模块

    有些场景我们需要生成一些列随机数组成的数组

    代码:

    import numpy as np
    from numpy import pi
    
    # 生成2行3列由随机数(0-1之间)组成的数组
    a = np.random.random((2,3))
    print(a)
    
    print("######################")
    
    # 生成>=0 and < 2*pi区间,100个元素的数组
    b = np.linspace( 0, 2*pi, 100 )
    print(b)
    

    测试记录:

    image.png

    3.8 读写模块

    有些场景,我们需要使用numpy来读写本地文件

    如果我们不知道语法的话,我们可以使用help命令

    help(numpy.genfromtxt)
    
    image.png

    代码:

    import numpy
    world_alcohol1 = numpy.genfromtxt("E:/file/world_alcohol.txt", delimiter=",")
    print(world_alcohol1)
    print("################################################")
    world_alcohol2 = numpy.genfromtxt("E:/file/world_alcohol.txt", delimiter=",", dtype="U75", skip_header=1)
    print(world_alcohol2)
    

    测试记录:

    image.png

    参考:

    1. https://study.163.com/course/introduction.htm?courseId=1003590004#/courseDetail?tab=1

    相关文章

      网友评论

          本文标题:Python数据分析与机器学习2-Numpy

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