当前位置 博文首页 > 香菜:深度学习基础之numpy,小白轻松入门numpy,送书了!!!

    香菜:深度学习基础之numpy,小白轻松入门numpy,送书了!!!

    作者:[db:作者] 时间:2021-09-04 09:16

    目录

    1、numpy 的安装

    2、快速入门

    3.Numpy 数组操作

    4、常用函数

    5、ndarray和 list的区别

    6、总结

    送书活动第一期


    1、numpy 的安装

    pip install numpy

    2、快速入门

    2.1 数据类型

    用过C语言的基本上都知道是哪几个类型,毕竟python是c 实现的

    图片

    总结一下:u表示无符号,有符号则没有,中间表示类型类型,最后一个是表示的字节数

    2.2 最重要的对象Ndarray 对象

    Ndarray 可以理解为Java里面List 的实现,封装了更好的接口和api。

    图片

    调试看下结构

    图片

    2.3 副本和视图

    副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不会影响到原始数据,物理内存不在同一位置。

    视图是数据的一个别称或引用,通过该别称或引用亦便可访问、操作原有数据,但原有数据不会产生拷贝。如果我们对视图进行修改,它会影响到原始数据,物理内存在同一位置。

    视图一般发生在:

    • 1、numpy 的切片操作返回原数据的视图。

    • 2、调用 ndarray 的 view() 函数产生一个视图。

    副本一般发生在:

    • Python 序列的切片操作,调用deepCopy()函数。

    • 调用 ndarray 的 copy() 函数产生一个副本。

    3、numpy 常用操作

    1.创建 ndarray

    import numpy as np
    #将列表和 元组转换为ndarray
    x = [1,2,3]
    a = np.asarray(x) ?
    print (a)
    
    y = (1,2,3)
    b = np.asarray(y) ?
    print (b)
    1. 遍历ndarray

      NumPy 迭代器对象 numpy.nditer( nditer = nd ?iterator) 提供了一种灵活访问一个或者多个数组元素的方式

    import numpy as np
    
    a = np.arange(6).reshape(2,3)
    print ('原始数组是:')
    print (a)
    print ('\n')
    print ('迭代输出元素:')
    for x in np.nditer(a):
    ? ?print (x, end=", " )
    print ('\n')

    nditer 的几个参数

    order='F' :'C' -- 按行,'F' -- 按列,'A' -- 原顺序,'k' -- 元素在内存中的出现顺序。

    op_flags:nditer 将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值得修改,必须指定 read-write 或者 write-only 的模式。

    import numpy as np
    
    a = np.arange(6).reshape(2, 3)
    print('原始数组是:')
    print(a)
    print('\n')
    print('迭代输出元素:')
    for x in np.nditer(a,order="F",op_flags=['readwrite']):
    ? print(x, end=", ")
    ? x[...]= x * 2
    print('\n 修改后的元素')
    print(a)
    print('\n')

    输出结果

    原始数组是:
    [[0 1 2]
    [3 4 5]]
    
    迭代输出元素:
    0, 3, 1, 4, 2, 5,
    
    修改后的元素
    [[ 0 2 4]
    [ 6 8 10]]
    

    3.Numpy 数组操作

    修改数组形状

    图片

    翻转数组

    numpy.transpose 函数用于对换数组的维度连接数组

    图片

    分割数组

    数组元素的添加与删除

    numpy.append 函数在数组的末尾添加值

    4、常用函数

    NumPy 提供了标准的三角函数:sin()、cos()、tan()。

    NumPy 算术函数包含简单的加减乘除: add()subtract()multiply()divide()

    统计函数

    numpy.amin() 和 numpy.amax()

    numpy.ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

    numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

    numpy.mean() 函数返回数组中元素的算术平均值。如果提供了轴,则沿其计算。

    操作函数

    numpy.sort() 函数返回输入数组的排序副本

    numpy.argsort() 函数返回的是数组值从小到大的索引值

    numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列

    #!/usr/bin/env python
    # encoding: utf-8
    
    
    """
    #Author: 香菜
    @time: 2021/8/30 0030 下午 10:00
    """
    
    import numpy as np
    
    a = np.arange(6).reshape(2, 3)
    print('原始数组是:')
    print(a)
    # 最小值,可以指定轴
    min = np.amin(a)
    print("最小值 :" + str(min))
    # 最大值与最小值的差
    gap = np.ptp(a)
    print("最大差 :" + str(gap))
    mid = np.median(a)
    print("中位数 :" +str(mid))
    
    mean = np.mean(a)
    print("平均值 :" +str(mean))
    
    print(np.argsort(a))

    5、ndarray和 list的区别

    数组元素要求是相同类型,而列表的元素可以是不同类型。

    ndarray占用的内存要比列表少

    • 数组底层使用C程序编写,运算速度快。

    • 数组底层使用C中数组的存储方式(紧凑存储),节省内存空间。

    6、总结

    numpy 不难,最重要的数据结构就是ndarray ,可以直接当做List使用,然后np 提供了一些列的函数操作

    送书活动第一期

    《Python数据分析与大数据处理从入门到精通》

    全面:数据分析与大数据处理所需的所有技术,包含基础理论、核心概念、实施流程,从编程语言准备、数据采集与清洗、数据分析与可视化,到大型数据的分布式存储与分布式计算等。
    (2)深入:一本书讲透1种编程语言和14种数据分析与大处理工具,以及大数据分析技术及项目开发方法。
    (3)丰富:包含45个“新手问答”、17个章节的“实训”、3个项目综合实战、50道Python面试题精选。

    图片

    京东自营购买链接:

    https://item.jd.com/12740890.html

    当当自营购买链接:

    http://product.dangdang.com/28476522.html

    大家点赞关注,两天后在留言的同学中抽取送两本书

    注:如果中奖了没关注则放弃


    ?

    图片

    cs