• python>>numpy包


    章节内容

            什么是NumPy模块和NumPy数组

            创建数组

            基本数据类型

            数据可视化

            索引和切片

            副本和视图

    目录

    什么是NumPy模块和NumPy数组?

    创建数组

    基本数据类型

    数据可视化

    索引和切片

    副本和视图


    什么是NumPy模块和NumPy数组

    NumPy数组

    python对象
    • 高级数字对象:整数、浮点数
    • 容器:列表,字典,元组
    NumPy提供:
    • 继承了python中的列表(List)容器中的优良特性
    • 丰富的函数,便于提高计算效率,提高代码简洁新
    • 专业为科学计算而设计
    • 也成为面向数组,矩阵(多维数组)的计算

    计算效率大幅度提高

    每个循环 178 μs ± 3.98 μs(7 次运行,每次 10,000 次循环)。

    NumPy 参考文档

    •  一个外国的文档:NumPy Documentation
    • 怎么查询一个numpy中的关键词

    • 交互式的帮助

     创建数组

    利用arange手动构建数组

     

    利用linspace创建数组

     

     用特殊的方法创建特殊数组

    • 利用zeros(n)创建一个n个元素的数组

    • 利用zeros((n,m))创建多维数组

    • 利用eye((n,m))创建多维数组

    • 利用diag((n,m))创建多维数组(方阵)

     基本数据类型

    复数类型:
     d = np.array([1+2j, 3+4j, 5+6*1j])
     d.dtypedtype('complex128')
    布尔数据类型:
    e = np.array([True, False, False, True])
    e.dtypedtype('bool')
    字符串类型: 
    f = np.array(['Bonjour', 'Hello', 'Hallo'])
    f.dtype # <--- strings containing max. 7 letters dtype('S7')
    更多:
    • int32
    • int64
    • uint32
    • uint64

    数据可视化

    • 导入包

    import matplotlib.pyplot as plt
    • 数据的输入

    1. x = np.linspace(0,3,20)
    2. y = np.linspace(0,8,20)
    • 绘制图形
    plt.plot(x,y)

    •  一个有趣的实验
    1. image = np.random.rand(30,30)
    2. plt.imshow(image,plt.cm.hot)

     索引和切片

    创建一个数组之后,因为numpy几乎继承了python中的list容器中所有特性,其切片和list容器的切片操作类似,这里就不展开了,直接用图来展示。

     副本和视图

    我们创建一个切片之后,得到的numpy数组和原来的数组是共享同一块内存空间,所以修改任意一个numpy数组中的数据,另外的一个numpy数组也会被修改。

    • 调用np.map_share_memory(a,b),可以查看两个数组是否共用一个内存空间
    1. a = np.arange(10)
    2. >>> aarray([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    3. >>> b = a[::2]
    4. >>> b
    5. array([0, 2, 4, 6, 8])
    6. >>> np.may_share_memory(a, b)
    7. True
    • 如果不想共享同一块内存空间
    1. a = np.arange(10)
    2. >>> c = a[::2].copy()
    3. c[0] = 0
    4. >>> np.may_share_memory(a, c)
    5. False

        

     

  • 相关阅读:
    unity变体收集工具
    树 —— 树和森林的遍历
    ABAP 设置开票后不允许修改采购订单价格
    Ubuntu 无法定位软件包 yum (添加镜像后还出现)
    微信小程序使用textarea后内容随着屏幕上下移动的问题
    策略下发与安全处置
    计算机视觉专家:如何从C++转Python
    035——泛型深入
    C++----unordered_map unordered_set使用及模拟
    Mac电脑卡顿的解决办法
  • 原文地址:https://blog.csdn.net/weixin_54201782/article/details/128061676