码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

        

     

  • 相关阅读:
    Ubuntu20.04环境下MySQL8.0.30的 用户管理,设置修改密码,密码过期策略,权限管理,角色管理
    B. DIV + MOD
    includes用法
    虚拟摄像头驱动程序彻底分析
    基于多线程的Reactor模式的 回声服务器 EchoServer
    【JVM】——JVM中内存划分
    虹科案例 | 虹科HiveMQ助力实现百万辆汽车智能互联
    基于51单片机简易电子琴设计
    适用于 Mac 或 Windows 的 4 种最佳 JPEG/PNG图片 恢复软件
    【MySQL】【数据库】如何进行严格的四舍五入
  • 原文地址:https://blog.csdn.net/weixin_54201782/article/details/128061676
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号