Jacky's blog Jacky's blog
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Jacky Wang

行到水穷处,坐看云起时
首页
  • 编码专题
  • 深入浅出 Vite
  • 深入浅出 babel
  • 快速上手API
  • 深入浅出 react
  • Node

    • code-notebook
  • 状态管理

    • redux
  • 前端工程化

    • Wepack
  • React源码

    • React源码
  • 组件库封装

    • 组件库
  • 开发工具

    • Vscode 插件
  • 项目展示
  • 案例中心 (opens new window)
  • First Project
  • 基础算法题
  • 链表题
  • 动态规划
  • 双指针
  • 递归
  • 数据结构
  • 前端学习计划 (opens new window)
  • 技术随笔
  • 转载文章
  • 包管理工具
  • 前端学习周报
  • VSCode插件
  • Promise 专题
  • 函数技巧
  • React 专题
  • 配置文件

    • TSCONFIG-配置 (opens new window)
    • NGINX-配置 (opens new window)
    • 正则规则查询手册 (opens new window)
    • Lint 配置 (opens new window)
  • 教程

    • GIT-教程
    • NPM SCRIPTS-工作流 (opens new window)
    • DOCKER-教程 (opens new window)
    • LERNA-教程 (opens new window)
    • GIT-常用操作整理 (opens new window)
  • VSCode

    • LAUNCH.JSON (opens new window)
  • 指令

    • NPM 指令 (opens new window)
    • NVM 指令 (opens new window)
    • Nginx 指令 (opens new window)
    • YARN 指令 (opens new window)
    • PNPM 指令 (opens new window)
  • 库

    • FS-EXTRA 库 (opens new window)
    • NODE 库-PATH (opens new window)
  • 永远的神

    • 魔法师卡颂-自顶向下学 React 源码 (opens new window)
    • 全栈潇晨 (opens new window)
    • 博客-程序员山月-Daily (opens new window)
    • 淘系前端:冴羽 (opens new window)
  • 系列文章

    • 《图解HTTP》 (opens new window)
    • 《ES6标准入门》 (opens new window)
    • 《现代JavaScript教程》 (opens new window)
    • 《深入浅出Webpack》 (opens new window)
    • VSCode 插件系列:小茗同学 (opens new window)
    • JEST 教程 (opens new window)
    • 前端精读周刊:各种精读系列 (opens new window)
    • 一文吃透系列 (opens new window)
    • 图解 REACT 原理 (opens new window)
  • 实用网站

    • MDN (opens new window)
    • CAN I USE (opens new window)
    • TYPESCRIPT-ESLint-RULES (opens new window)
    • ESLint-RULES (opens new window)
    • FRONT-END TREND (opens new window)
    • NPM TREND (opens new window)
    • 在线分析 Node 依赖 (opens new window)
    • FIND NPM (opens new window)
    • CODE PEN (opens new window)
    • 印记中文 (opens new window)
    • TOOL.LU (opens new window)
    • 阮一峰-网道 (opens new window)
    • DIGITAL OCEAN (opens new window)
    • DEVDOCS.IO (opens new window)
    • JOI (opens new window)
  • 算法

    • 小浩算法 (opens new window)
    • LABULADONG 的算法小抄 (opens new window)
    • 力扣 SOLUTION (opens new window)
    • HACKER RANK (opens new window)
    • 代码随想录 (opens new window)
  • 博客系列

    • 美团大佬 (opens new window)
    • 蜡笔小伟 (opens new window)
    • 优秀博客1 (opens new window)
    • 优秀博客2-umi (opens new window)
    • 优质博客 (opens new window)
  • CSS

    • CSS-EASING 库 (opens new window)
    • ROUGH.JS (opens new window)
    • CSS 网站收集
    • UNOCSS (opens new window)
  • 前端

    • PROMISE (opens new window)
    • UNDERSCORE.JS (opens new window)
    • study with BGM (opens new window)
    • nginx【B站视频】 (opens new window)
    • 机器学习
    • Js基础
  • 掘金已购课程

    • 前端自动化测试精讲 (opens new window)
    • 深入浅出 Vite (opens new window)
    • 现代 Web 布局 (opens new window)
    • 前端算法与数据结构 (opens new window)
    • 基于 Vite 的 SSG 框架开发实战 (opens new window)
    • SSR 实战:官网开发指南 (opens new window)
    • WebGL 入门与实践 (opens new window)
    • 玩转 CSS 的艺术之美 (opens new window)
    • 前端调试通关秘籍 (opens new window)
    • React 进阶实践指南 (opens new window)
    • TypeScript 全面进阶指南 (opens new window)
    • 前端缓存技术与方案解析 (opens new window)
    • npm scripts 前端工作流 (opens new window)
    • Webpack5 核心原理与应用实践 (opens new window)
  • 购物车

    • 张鑫旭-技术写作指南 (opens new window)
    • 深入剖析 Node.js 底层原理 (opens new window)
    • 前端开发者的现代 C++ 课 (opens new window)
    • 从前端到全栈 (opens new window)
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 数字信号处理

  • scikit-learn-机器学习常用算法原理及编程实战

    • 第2章Python机器学习软件包
      • ipython中的快捷键
      • 查询命令空间中所有的函数和对象
      • 查询命令:??
      • 魔术命令
    • 第3章机器学习理论基础
    • 第5章线性回归算法
    • 第6章逻辑回归
    • 第7章决策树
    • 第8章SVM
  • 读书笔记
  • scikit-learn-机器学习常用算法原理及编程实战
wangjiasheng
2021-07-25
目录

第2章Python机器学习软件包

# Ipython

# ipython中的快捷键

快捷键 说明
Ctrl+A 移动光标到最前面
Ctrl+E 移动光标到最末尾
Ctrl+U 删除光标前的内容
Ctrl+K 删除光标后的内容
Ctrl+L 消除显示内容
Crrl+C 中断当前的脚本运行

# 查询命令空间中所有的函数和对象

In [2]: np.random.rand*?                                                        
np.random.rand
np.random.randint
np.random.randn
np.random.random
np.random.random_integers
np.random.random_sample
1
2
3
4
5
6
7

# 查询命令:??

  In [4]: np.random.rand?? 
  Docstring:
  rand(d0, d1, ..., dn)

  Random values in a given shape.

  Create an array of the given shape and populate it with
  random samples from a uniform distribution
  over ``[0, 1)``.

  Parameters
  ----------
  d0, d1, ..., dn : int, optional
      The dimensions of the returned array, should all be positive.
      If no argument is given a single Python float is returned.

  Returns
  -------
  out : ndarray, shape ``(d0, d1, ..., dn)``
      Random values.

  See Also
  --------
  random

  Notes
  -----
  This is a convenience function. If you want an interface that
  takes a shape-tuple as the first argument, refer to
  np.random.random_sample .

  Examples
  --------
  >>> np.random.rand(3,2)
  array([[ 0.14022471,  0.96360618],  #random
         [ 0.37601032,  0.25528411],  #random
         [ 0.49313049,  0.94909878]]) #random
  Type:      builtin_function_or_method
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

# 魔术命令

  • 查看变量%who``%whos

    In [7]: whos                                                                    
    Variable   Type       Data/Info
    -------------------------------
    a          ndarray    100x100: 10000 elems, type `float64`, 80000 bytes
    msg        str        hello ipython
    np         module     <module 'numpy' from '/ho<...>kages/numpy/__init__.py'>
    
    In [8]: who                                                                     
    a	 msg	 np	
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
  • 清空变量和库 %reset

  • 命令行运行%run hello.py

  • 记录log文件

    • 开始记录log:%logstart
    • 停止记录log:%logstop
  • 直接运行shell命令:!

    In [21]: !ifconfig |grep "inet "                                                
              inet 地址:192.168.6.135  广播:192.168.6.255  掩码:255.255.255.0
              inet 地址:127.0.0.1  掩码:255.0.0.0
    
    1
    2
    3
  • 重载函数:from imp import reload

    # 原先的python函数,hello.py
    def say_hello():
      print("ipython is a bad tool")
      
    # 调用查看:
    # import hello 
    # hello.say_hello()
    
    # 后修改为:
    def say_hello():
      print("ipython is a bad tool")
    
    # 在此调用查看:
    # from imp import reload
    # reload(hello)
    # hello.say_hello()  
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

# Jupyter-notebook教程

  • 开启notebook:ipython notebook

  • 快捷键

    • 切换命令模式和编辑模式:Ctrl+M

      • 运行当前Cell,并停留在当前Cell:Ctrl+Enter
      • 运行当前Cell,并停留在下一Cell:Shift+Enter
      • 在命令模式下:删除当前Cell:DD
      • 转换为Markdown:M
      • 转换为代码模式:Y
      • 在当前cell上面插入代码块:A
      • 在当前cell下面插入代码块:B
    • 编辑模式:Enter

      • 快速删除一行:ctrl+D

# Numpy 基础使用

  • Numpy默认将计算结果转换为行向量

  • Numpy提供基本的统计功能,求和、求平均值、求方差

    • 一维数组
    In [5]: a = np.random.randint(1,5,6)  
    
    In [6]: a.sum()                                                                 
    Out[6]: 21
    
    In [7]: a.mean()                                                                
    Out[7]: 3.5
    
    In [8]: a.std()                                                                 
    Out[8]: 0.7637626158259734
    
    In [9]: a.min()                                                                 
    Out[9]: 2
    
    In [10]: a.max()                                                                
    Out[10]: 4
    
    In [11]: a.argmin()                                                             
    Out[11]: 0
    
    In [13]: a.argmax()                                                             
    Out[13]: 1
    
    In [14]: print(a)                                                               
    [2 4 4 4 3 4]
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    • 二维数组或高维数组,通过axis=0按行计算,axis=1按列计算

    消除哪儿一维就选择对应的axis的序号

    In [15]: b = np.random.randint(1,100,(6,4))                                     
    
    In [16]: print(b)                                                               
    [[55 92 10 75]
     [63 34 61  7]
     [25 29 36 83]
     [62 44  6 12]
     [ 5 37 25 13]
     [36 93 91 14]]
    
    In [17]: b.sum()                                                                
    Out[17]: 1008
    
    In [18]: b.sum(axis=0).sum()                                                    
    Out[18]: 1008
    
    In [19]: b.sum(axis=1)                                                          
    Out[19]: array([232, 165, 173, 124,  80, 234])
    
    In [20]: b.std(axis=1)                                                          
    Out[20]: 
    array([30.65126425, 22.85142228, 23.28492001, 23.        , 12.12435565,
           34.39840113])
    
    In [21]: b.min(axis=1)                                                          
    Out[21]: array([10,  7, 25,  6,  5, 14])
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    • 添加一个维度np.newaxis

      In [1]: a = np.arange(4)                                                                                                        
      In [3]: a = np.arange(4)                                                        
      
      In [4]: a.shape                                                                 
      Out[4]: (4,)
      
      In [5]: b = a[:,np.newaxis]                                                     
      
      In [6]: b.shape                                                                 
      Out[6]: (4, 1)
      
      In [7]: c = a[np.newaxis,:]                                                     
      
      In [8]: c.shape                                                                 
      Out[8]: (1, 4)
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
    • 判断两个矩阵是否相同:().all()

      In [10]: a = np.array([1,2,3,4])                                                
      
      In [11]: b = np.array([2,3,4,5])                                                
      
      In [12]: a == b                                                                 
      Out[12]: array([False, False, False, False])
      
      In [13]: (a ==b ).all()                                                         
      Out[13]: False
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
    • numpy的读写

      • 保存为.txt
      • 保存为numpy二进制文件.npy
      a = np.arange(15).reshape(3,5)
      print(a)
      [[ 0  1  2  3  4]
       [ 5  6  7  8  9]
       [10 11 12 13 14]]
      np.savetxt("a.txt",a)
      np.loadtxt("a.txt")
      np.save("a.npy",a)
      np.load("a.npy")
      
      1
      2
      3
      4
      5
      6
      7
      8
      9

      查看对应的大小:

      ls -lh
      -rw-rw-r-- 1 jacky jacky 248 12月 18 17:04 a.npy
      -rw-rw-r-- 1 jacky jacky 375 12月 18 17:04 a.txt
      
      1
      2
      3
  • Numpy 多项式拟合

    • 根的求解
    import numpy as np 
    p = np.poly1d([1,-4,3])
    
    # 自变量取0的值
    p(0)
    
    # 多项式的根
    p.roots
    print(p.roots)
    
    # 对应根值的y值是0
    p(p.roots)
    print(p(p.roots))
    
    # 多项式的阶数
    p.order
    print(p.order)
    
    # 多项式的系数
    p.coeffs
    print(p.coeffs)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    • 拟合
    import numpy as np 
    import matplotlib.pyplot as plt 
    
    n_dots = 20 
    n_order = 3 
    
    x = np.linspace(0,1,n_dots)
    
    # 真实的函数:y = sqrt(x) 再加上 0.2 的方差
    y = np.sqrt(x) + 0.2 *np.random.rand()
    
    # 用三次多项式拟合 y = sqrt(x) 函数
    p = np.poly1d(np.polyfit(x,y,n_order))
    
    # 输出三次拟合后的系数
    print(p.coeffs)
    
    # 绘制拟合权限
    t = np.linspace(0,1,200)
    plt.plot(x,y,'ro',t,p(t),'-')
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
  • 蒙特卡洛方法:计算π\piπ值

    import numpy as np 
    import matplotlib.pyplot as plt 
    
    n_dots = 100000
    x = np.random.rand(n_dots)
    y = np.random.rand(n_dots)
    
    distance = np.sqrt(x ** 2 + y ** 2)
    in_circle = distance[distance < 1]
    
    Pi = 4 * float(len(in_circle)) / n_dots
    print(Pi)
    plt.plot(x[distance<1],y[distance<1],'bo',x[distance>=1],y[distance>=1],'ko')
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13


# Pandas 基础使用

## 数据结构输入
编辑 (opens new window)
#读书笔记
上次更新: 2022/04/06, 15:04:00
数字信号处理--相关函数
第3章机器学习理论基础

← 数字信号处理--相关函数 第3章机器学习理论基础→

最近更新
01
如何理解浏览器的 user agent 用户代理的含义?
11-05
02
浏览器事件循环机制
10-31
03
浏览器页面渲染机制【2023】
10-15
更多文章>
Theme by Vdoing | Copyright © 2020-2023
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式