• numpy的学习


      numpy的学习,可以不需要使用Anaconda,不过为了测试jupter notebook,这里也进行一下安装。后面的程序,还是写在pycharm中。

    一:简介

    1.说明

      python的扩展库,支持高效的多数组与矩阵计算,也提供了大量的数学函数库。

      科学计算比较高效。

    2.打开jupyter notebook

    二:基础ndarray

    1.说明

      numpy最重要的就是N维数组对象,该对象是一个快速灵活的大数据集合容器。

      构造函数

    numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

    2.创建程序

    import numpy as np
    
    ## 将python中的list转换成ndarray
    a = [1,2,3,4,5]
    print(type(1))
    
    A = np.array(a)
    print(A)
    print(type(A))
    
    ## 直接生成ndarray
    b = np.array([2,3,4])
    print(type(b))
    
    c = np.array([[1,2,3],[4,5,6]])
    print(c)
    print(type(c))
    print(c.ndim)  # 几维度
    
    ## 指定维度创建ndarray,指定dtype
    d = np.array([1,2,3,4,5], ndmin = 3, dtype=np.float32)
    print(d)

    3.数据类型说明

      numpy支持比python更多的数据类型

      语法构造函数:

    numpy.dtype(object, align, copy)
    • object - 要转换为的数据类型对象
    • align - 如果为 true,填充字段使其类似 C 的结构体。
    • copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用

     

      记忆:

      

    4.数据类型的程序

    import numpy as np
    
    #
    dt = np.dtype(np.int32)
    print(dt)
    
    ## 使用 int
    a = np.array([1,2,3], dtype=dt)
    print(a)
    
    
    dt_f = np.dtype(np.float32)
    b = np.array([1,2,3], dt_f)
    print(b)
    
    dt_c = np.dtype(complex)
    c = np.array([1,2,3], dt_c)
    print(c)
    
    ## 自定义结构化类型
    # [(10,) (20,) (30,)]
    dt_struct = np.dtype([("age", np.int32)])
    d = np.array([(10), (20), (30)], dt_struct)
    print(d)
    # [10 20 30]
    print(d['age'])
    
    # dtype创建自定义实体对象类型
    # [(b'tom', 10) (b'andy', 20)]
    # [b'tom' b'andy']
    dt_object = np.dtype([("name", "S20"), ("age", np.int32)])
    e = np.array([('tom', 10), ('andy', 20)], dt_object)
    print(e)
    print(e['name'])

    5.数组属性

      ndarray.shape

      ndarray.ndim

      ndarray.itemsize

    6.程序

    import numpy as np
    
    ## shape
    # 返回数组的形状
    # (2, 4)
    a =np.array([[1,2,3,4],[5,6,7,8]])
    print(a.shape)
    
    # 通过shape改变数组形状
    a.shape = (4,2)
    print(a)
    
    ## ndim
    # 得到维度
    # 1
    b = np.array([1,2,3,6])
    print(b.ndim)
    
    ## itemsize
    # 每个元素的单位字节长度
    # 8
    c = np.array([3,4,5,6], dtype=np.int64)
    print(c.itemsize)
    
    ## PS
    ## 通过reshape()改变形状
    f = b.reshape(2,2)
    print(f)

    7.基础数组创建

      empty()

      ones()

      ones_like()

      zeros()

      zeros_like()

      eye()

      asarray()

      arange()

      linspace

    8.程序

    import numpy as np
    
    # 随机创建函数
    a = np.empty([3,2], dtype=np.int8)
    print(a)
    
    # 0进行填充函数
    b = np.zeros([3,2], dtype=np.int8)
    print(b)
    
    # 形状相同的,0进行填充
    c = np.array([1,2,3,4], dtype=np.int8)
    d = np.zeros_like(c)
    print(d)
    
    # 1进行填充
    e = np.ones([3,2], dtype=np.int8)
    print(e)
    
    # 对角线为1
    f = np.eye(5)
    print(f)
    
    ###
    #asarray,把python中的list或tuple转成adarray
    aa = [1,2,3,4]
    bb = np.asarray(aa)
    print(bb)
    
    cc = (1,2,3,4)
    dd = np.asarray(cc)
    print(dd)
    
    # arange, 返回给定范围的数组。前包,后不包
    ee = np.arange(1, 20, 2, dtype = np.float32)
    print(ee)
    
    ff = np.arange(10)
    print(ff)
    
    # linspace, 返回指定均匀间隔。前包后包
    gg = np.linspace(10, 20, 6)
    print(gg)

     三:进阶

     1.切片与索引

      

  • 相关阅读:
    【Beta阶段】第五次Scrum Meeting
    wireshark怎么抓包、wireshark抓包详细图文教程
    Java环境变量的配置
    Office2007 每次打开斗需要检查 【配置进度】
    思科SVI接口和路由接口区别
    Windows Server 2008 R2之管理Sysvol文件夹
    Windows Server 2008 R2之六活动目录域服务的卸载
    Windows Server 2008 R2之五操作主控的管理
    Windows Server 2008 R2之三管理活动目录数据库
    23. Merge k Sorted Lists
  • 原文地址:https://www.cnblogs.com/juncaoit/p/16251284.html
Copyright © 2020-2023  润新知