NumPy 秘籍中文第二版:一、使用 IPython

原文:NumPy Cookbook - Second Edition

协议:CC BY-NC-SA 4.0

译者:飞龙

在本章中,我们将介绍以下秘籍:

  • 安装 IPython
  • 使用 IPython 作为 Shell
  • 阅读手册页
  • 安装 matplotlib
  • 运行 IPython 笔记本
  • 导出 IPython 笔记本
  • 导入网络笔记本
  • 配置笔记本服务器
  • 探索 SymPy 配置文件

简介

IPython,可从 ipython.org 获得,是一个免费的开源项目 ,可用于 Linux,Unix,MacOSX, 和 Windows。 IPython 作者仅要求您在使用 IPython 的任何科学著作中引用 IPython。 IPython 提供了用于交互式计算的架构。 该项目最值得注意的部分是 IPython shell。 IPython 提供了以下组件,其中包括:

  • 交互式 Python Shell(基于终端的 Qt 应用)
  • 一个 Web 笔记本(在 IPython 0.12 和更高版本中可用),支持富媒体和绘图

IPython 与 Python 2.5、2.6、2.7、3.1、3.2、3.3 和 3.4 版本兼容。 兼容性取决于 IPython 版本。 例如,IPython 2.3.0 需要 Python 2.7 或 3.3+。

您可以在这个页面上在云中尝试 IPython 而不将其安装在系统上。 与本地安装的软件相比,会有一些延迟,因此这不如真实的软件好。 但是, IPython 交互式外壳程序中可用的大多数功能似乎都可用。 PythonAnywhere 也有一个 Vi(m) 编辑器,如果您喜欢 vi 的话,那显然很棒。 您可以从 IPython 会话中保存和编辑文件。

安装 IPython

可以通过多种方式安装 IPython ,具体取决于您的操作系统。 对于基于终端的外壳,需要依赖readline。 网络笔记本需要tornadozmq

除了安装 IPython 外,我们还将安装setuptools,它为您提供easy_install命令。 easy_install命令是 Python 的流行package管理器。 一旦拥有easy_install即可安装pippip命令类似于easy_install,并添加了诸如卸载之类的选项。

操作步骤

本节介绍如何在 Windows,MacOSX 和 Linux 上安装 IPython。 它还描述了如何使用easy_installpip或从源代码安装 IPython 及其依赖项:

  • 在 Windows 上安装 IPython 和 Setuptools:IPython 网站上提供了适用于 Python2 或 Python3 的二进制 Windows 安装程序。 另见这里。

    使用安装程序安装 Setuptools。 然后安装pip,如下所示:

    cd C:\Python27\scripts
    python .\easy_install-27-script.py pip
    
    
  • 在 MacOSX 上安装 IPython:如果需要 ,请安装 Apple Developer Tools(Xcode)。 可以在这个页面上找到 Xcode。 请遵循easy_install/pip说明或本节后面提供的从源安装的说明。

  • 在 Linux 上安装 IPython:由于 Linux 发行版太多,因此本节将不详尽:

    • 在 Debian 上,键入以下命令:

      $ su – aptitude install ipython python-setuptools
      
      
    • 在 Fedora 上,魔术命令如下:

      $ su – yum install ipython python-setuptools-devel
      
      
    • 以下命令将在 Gentoo 上安装 IPython:

      $ su – emerge ipython
      
      
    • 对于 Ubuntu,安装命令如下:

      $ sudo apt-get install ipython python-setuptools
      
      
  • 使用easy_installpip安装 IPython:使用以下命令,通过easy_install安装 IPython 和本章中的秘籍所需的所有依赖项:

    $ sudo easy_install ipython pyzmq tornado readline
    
    

    或者,您可以通过在终端中键入以下命令,首先使用easy_install安装pip

    $ sudo easy_install pip
    
    

    之后,使用pip安装 IPython:

    $ sudo pip install ipython pyzmq tornado readline
    
    
  • 从源代码安装:如果您想使用最新的开发版本,则从源代码安装适合您:

    1. 从这个页面下载最新的源存档。

    2. 从存档中解压缩源代码:

      $ tar xzf ipython-<version>.tar.gz
      
      
    3. 相反,如果您已安装 Git,则可以克隆 Git 存储库:

      $ git clone https://github.com/ipython/ipython.git
      
      
    4. 转到下载源中的根目录:

      $ cd ipython
      
      
    5. 运行安装脚本。 这可能需要您使用sudo运行命令,如下所示:

      $ sudo python setup.py install
      
      

工作原理

我们使用几种方法安装了 IPython。 这些方法大多数都安装最新的稳定版本,但从源代码安装时除外,这将安装开发版本。

另见

  • 来自 IPython 官方网站的说明

使用 IPython 作为 Shell

科学家和工程师习惯进行实验。 IPython 是科学家根据实验而创建的。 IPython 提供的交互式环境被许多人视为对 MATLAB,Mathematica,Maple 和 R 的直接回答。

以下是 IPython Shell 的功能列表:

  • 制表符补全
  • 历史机制
  • 内联编辑
  • 使用%run调用外部 Python 脚本的功能
  • 调用与操作系统外壳程序交互的魔术函数的能力
  • 访问系统命令
  • pylab开关
  • 访问 Python 调试器和分析器

操作步骤

本节描述了如何使用 IPython Shell:

  • pylabpylab开关会自动导入所有 SciPy,NumPy 和 matplotlib 包。 没有此开关,我们将不得不自行导入这些包。

    我们需要做的就是在命令行中输入以下指令:

    $ ipython --pylab
    Type "copyright", "credits" or "license" for more information.
    
    IPython 2.4.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    Welcome to pylab, a matplotlib-based Python environment [backend: MacOSX].
    For more information, type 'help(pylab)'.
    
    In [1]: quit()
    quit() or Ctrl + D quits the IPython shell.
    
    
  • 保存会话:我们可能希望能够返回到我们的实验。 在 IPython 中,很容易保存会话以供以后使用。 这是通过以下命令完成的:

    In [1]: %logstart
    Activating auto-logging. Current session state plus future input saved.
    Filename       : ipython_log.py
    Mode           : rotate
    Output logging : False
    Raw input log  : False
    Timestamping   : False
    State          : active
    
    

    可以使用以下命令关闭日志记录:

    In [9]: %logoff
    Switching logging OFF
    
    
  • 执行系统 Shell 命令:您可以在默认的 IPython 配置文件中通过在命令前面加上!符号来执行系统外壳命令。 例如,以下输入将获取当前日期:

    In [1]: !date
    
    

    实际上,任何以!为前缀的行都将发送到系统外壳。 我们还可以存储命令输出,如下所示:

    In [2]: thedate = !date
    In [3]: thedate
    
    
  • 显示历史记录:我们可以使用%hist命令显示命令的历史记录,如下所示:

    In [1]: a = 2 + 2
    
    In [2]: a
    Out[2]: 4
    
    In [3]: %hist
    a = 2 + 2
    a
    %hist
    
    

    这是命令行界面CLI)环境中的常见功能。 我们还可以使用-g开关查询历史记录:

    In [5]: %hist -g a = 2
     1: a = 2 + 2
    
    

工作原理

我们看到了许多所谓的魔术功能在起作用。 这些功能以%字符开头。 如果单独在行中使用魔术函数,则%前缀是可选的。

另见

  • IPython 作为系统外壳,来自 IPython 官方网站。

阅读手册页

我们可以使用help命令打开有关 NumPy 函数的文档。 不必知道函数的名称。 我们可以输入几个字符,然后让制表符完成工作。 例如,让我们浏览arange()函数的可用信息。

操作步骤

我们可以通过以下两种方式之一浏览可用信息:

  • 调用帮助功能:调用help命令。 输入该功能的几个字符,然后按Tab键(请参见以下屏幕截图):How to do it...

  • 带问号的查询:另一个选择是在函数名称后添加问号。 然后,您当然需要知道函数名称,但是不必键入help命令:

    In [3]: arange?
    
    

工作原理

制表符的完成取决于readline,因此您需要确保已安装它。 问号为您提供docstrings中的信息。

安装 matplotlib

matplotlib(按惯例所有小写字母)是一个非常有用的 Python 绘图库,对于以下秘籍以及以后的内容,我们将需要它 。 它取决于 NumPy,但很可能已经安装了 NumPy。

操作步骤

我们将看到如何在 Windows,Linux 和 MacOSX 上安装 matplotlib,以及如何从源代码安装它:

  • 在 Windows 上安装 matplotlib:您可以使用 Enthought 发行版(也称为 Canopy)。

    可能需要将msvcp71.dll文件放在您的C:\Windows\system32目录中。 您可以从这里获取。

  • 在 Linux 上安装 matplotlib:让我们看看如何在 Linux 的各种发行版中安装 matplotlib:

    这是 Debian 和 Ubuntu 上的安装命令:

    $ sudo apt-get install python-matplotlib
    
    
    • 在 Fedora/Redhat 上的安装命令如下:

      $ su - yum install python-matplotlib
      
      
  • 从源代码安装:您可以下载 Sourceforge 的tar.gz版本或从 Git 存储库下载最新的源代码:

    $ git clone git://github.com/matplotlib/matplotlib.git
    
    

    下载后,请使用以下命令照常构建和安装 matplotlib:

    $ cd matplotlib
    $ sudo python setup.py install
    
    
  • 在 MacOSX 上安装 matplotlib:从这里获取最新的 DMG 文件 。 您还可以使用 Mac Ports,Fink 或 Homebrew 包管理器。

另见

  • matplotlib 官方文档中的说明
  • 在这里中说明了如何在 SciPy 栈中安装。

运行 IPython 笔记本

IPython 具有一项令人兴奋的功能-网络笔记本。 所谓的笔记本服务器可以通过 Web 服务笔记本电脑。 现在,我们可以启动笔记本服务器并获得基于 Web 的 IPython 环境。 该环境具有常规 IPython 环境具有的大多数功能。 IPython 笔记本的功能包括:

  • 显示图像和内嵌图
  • 在文本单元格中使用 HTML 和 Markdown(这是一种简化的类似 HTML 的语言,请参见这里)
  • 笔记本的导入导出

准备

在开始之前,我们应确保已安装所有必需的软件。 依赖于tornadozmq。 有关更多信息,请参见本章中的“安装 IPython”秘籍。

操作步骤

  • 运行笔记本:我们可以使用以下命令启动笔记本:

    $ ipython notebook
    
    [NotebookApp] Using existing profile dir: u'/Users/ivanidris/.ipython/profile_default'
    [NotebookApp] The IPython Notebook is running at: http://127.0.0.1:8888
    [NotebookApp] Use Control-C to stop this server and shut down all kernels.
    
    

    如您所见,我们正在使用默认配置文件。 服务器在本地计算机上的端口 8888 上启动。稍后,您将在本章中学习如何配置这些设置。 笔记本在默认浏览器中打开; 这也是可配置的(请参见以下屏幕截图):

    How to do it...

    IPython 在启动笔记本的目录中列出了所有笔记本。 在本示例中,未找到笔记本。 可以通过按Ctrl + C停止服务器。

  • pylab模式运行笔记本:使用以下命令以pylab模式运行网络笔记本:

    $ ipython notebook --pylab
    
    

    这将加载SciPyNumPymatplotlib模块。

  • 运行带有嵌入式图形的笔记本:我们可以使用以下命令,通过inline指令显示嵌入式 matplotlib 图:

    $ ipython notebook --pylab inline
    
    

    以下步骤演示了 IPython 笔记本的功能:

    1. 单击新笔记本按钮以创建新笔记本。How to do it...
    2. 使用arange()函数创建一个数组。 输入以下屏幕快照中所示的命令,然后单击单元格 / 运行How to do it...
    3. 接下来输入以下命令,然后按Enter。 您将在Out [2]中看到输出,如以下屏幕截图所示:How to do it...
    4. sinc()函数应用于数组并绘制结果,如以下屏幕快照所示:

    How to do it...

工作原理

内联选项使可以显示内联 matplotlib 图。 与pylab模式结合使用时,无需导入 NumPy,SciPy 和 matplotlib 包。

另见

  • 本章中的“安装 IPython”秘籍
  • 笔记本的示例
  • sinc()函数的文档
  • plot()函数的文档

导出 IPython 笔记本

有时,您想与朋友或同事交换笔记本。 网络笔记本提供了几种导出数据的方法。

操作步骤

可以使用以下选项导出 Web 笔记本:

  • 打印选项打印按钮实际上并未打印笔记本,但允许您将笔记本导出为 PDF 或 HTML 文档。

  • 下载笔记本:使用“下载”按钮将笔记本下载到您选择的位置。 我们可以指定将笔记本下载为.py文件(只是普通的 Python 程序),还是下载为 JSON 格式的.ipynb文件。 导出后,我们在前一个秘籍中创建的笔记本如下所示:

    {
     "metadata": {
      "name": "Untitled1"
     }, 
     "nbformat": 2, 
     "worksheets": [
      {
        "cells": [
        {
          "cell_type": "code", 
          "collapsed": false, 
          "input": [
            "plot(sinc(a))"
          ], 
          "language": "python", 
          "outputs": [
          {
            "output_type": "pyout", 
            "prompt_number": 3, 
            "text": [
              "[<matplotlib.lines.Line2D at 0x103d9c690>]"
            ]
          }, 
          {
            "output_type": "display_data", 
            "png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD9CAYAAABZVQdHAAAABHNCSVQICAgIf...
              mgkAAAAASUVORK5CYII=\n"
          }
          ], 
          "prompt_number": 3
        }
        ]
      }
      ]
    }
    

    注意

    为简洁起见,一些文本已被省略。 该文件不适合编辑甚至阅读,但如果忽略图像表示部分,则可读性很强。 有关 JSON 的更多信息,请参见这里。

  • 保存笔记本:使用保存按钮保存笔记本。 这会自动以本地 JSON 格式.ipynb导出笔记本。 该文件将存储在最初启动 IPython 的目录中。

导入网络笔记本

可以将 Python 脚本作为 Web 笔记本导入。 显然,我们也可以导入以前导出的笔记本。

操作步骤

此秘籍向您展示如何将 Python 脚本作为 Web 笔记本导入。

使用以下命令加载 Python 脚本:

% load vectorsum.py

以下屏幕截图显示了从“NumPy 入门指南”加载vectorsum.py后进入笔记本页面的示例:

How to do it...

配置笔记本服务器

公共笔记本服务器需要安全。 您应该设置一个密码并使用 SSL 证书来连接它。 我们需要证书来通过 HTTPS 提供安全的通信(有关更多信息,请参见这里)。 HTTPS 在互联网上广泛使用的标准 HTTP 协议之上添加了一个安全层。 HTTPS 还对从客户端发送到服务器并返回的数据进行加密。证书颁发机构通常是为网站颁发证书的商业组织。 Web 浏览器具有证书颁发机构的知识,并且可以识别证书。 网站管理员需要创建证书并由证书颁发机构签名。

操作步骤

以下步骤描述了如何配置安全的笔记本服务器:

  1. 我们可以从 IPython 生成密码。 启动一个新的 IPython 会话并输入以下命令:

    In [1]: from IPython.lib import passwd
    
    In [2]: passwd()
    Enter password: 
    Verify password:
    Out[2]: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856'
    
    

    在第二个输入行,将提示您输入密码。 您需要记住该密码。 生成一个长字符串。 复制此字符串,因为稍后将需要它。

  2. 要创建 SSL 证书,您需要在路径中使用openssl命令。

    设置openssl命令不是火箭科学,但这可能很棘手。 不幸的是,这超出了本书的范围。 好的一面是,在线上有很多教程可以帮助您进一步发展。

    执行以下命令,以mycert.pem为名称创建证书:

    $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
    Generating a 1024 bit RSA private key
    ......++++++
    ........................++++++
    writing new private key to 'mycert.pem'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:
    State or Province Name (full name) [Some-State]:
    Locality Name (eg, city) []:
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, YOUR name) []:
    Email Address []:
    
    

    openssl工具提示您填写一些字段。 有关更多信息,请查看相关的手册页(手册页的缩写),如下所示:

    $ man openssl
    
    
  3. 使用以下命令为服务器创建特殊的配置文件:

    $ ipython profile create nbserver
    
    
  4. 编辑配置文件。 在此示例中,可以在~/.ipython/profile_nbserver/ipython_notebook_config.py中找到。

    配置文件很大,因此我们将省略其中的大多数行。 我们至少需要更改的行如下:

    c.NotebookApp.certfile = u'/absolute/path/to/your/certificate'
    c.NotebookApp.password = u'sha1:b...your password'
    c.NotebookApp.port = 9999
    
    

    请注意,我们指向的是我们创建的 SSL 证书。 我们设置了密码,并将端口更改为 9999。

  5. 使用以下命令,启动服务器以检查更改是否有效:

    $ ipython notebook --profile=nbserver
    [NotebookApp] Using existing profile dir: u'/Users/ivanidris/.ipython/profile_nbserver'
    [NotebookApp] The IPython Notebook is running at: https://127.0.0.1:9999
    [NotebookApp] Use Control-C to stop this server and shut down all kernels.
    
    

    服务器在端口 9999 上运行,您需要通过 HTTPS 连接到它。 如果一切顺利,您应该会看到一个登录页面。 另外,您可能需要在浏览器中接受安全例外。

    How to do it...

工作原理

我们为公共服务器创建了一个特殊的配置文件。 已经有一些样本概要文件,例如默认概要文件。 创建配置文件后,将使用配置文件将profile_<profilename>文件夹添加到.ipython目录。 然后可以使用--profile=<profile_name>命令行选项加载配置文件 。 我们可以使用以下命令列出配置文件:

$ ipython profile list

Available profiles in IPython:
 cluster
 math
 pysh
 python3

 The first request for a bundled profile will copy it
 into your IPython directory (/Users/ivanidris/.ipython),
 where you can customize it.

Available profiles in /Users/ivanidris/.ipython:
 default
 nbserver
 sh

另见

  • IPython passwd()函数的文档
  • OpenSSL 的文档

探索 SymPy 配置文件

IPython 有一个示例 SymPy 配置文件。 SymPy 是一个 Python 符号数学库。 我们可以简化代数表达式或区分函数,类似于 Mathematica 和 Maple。 显然,SymPy 是一款有趣的软件,但对于我们穿越 NumPy 的过程而言并不是必需的。 将此视为可选或额外的秘籍。 就像甜点一样,可以随意跳过它,尽管您可能会错过本章中最甜的部分。

准备

使用easy_installpip安装 SymPy:

$ sudo easy_install sympy
$ sudo pip install sympy

操作步骤

以下步骤将帮助您探索 SymPy 配置文件:

  1. 查看配置文件,该文件位于~/.ipython/profile_sympy/ipython_config.py。内容如下:

    c = get_config()
    app = c.InteractiveShellApp
    
    # This can be used at any point in a config file to load a sub config
    # and merge it into the current one.
    load_subconfig('ipython_config.py', profile='default')
    
    lines = """
    from __future__ import division
    from sympy import *
    x, y, z, t = symbols('x y z t')
    k, m, n = symbols('k m n', integer=True)
    f, g, h = symbols('f g h', cls=Function)
    """
    
    # You have to make sure that attributes that are containers already
    # exist before using them.  Simple assigning a new list will override
    # all previous values.
    
    if hasattr(app, 'exec_lines'):
     app.exec_lines.append(lines)
    else:
     app.exec_lines = [lines]
    
    # Load the sympy_printing extension to enable nice printing of sympy expr's.
    if hasattr(app, 'extensions'):
     app.extensions.append('sympyprinting')
    else:
     app.extensions = ['sympyprinting']
    
    

    此代码完成以下任务:

    • 加载默认配置文件
    • 导入 SymPy 包
    • 定义符号
  2. 使用以下命令以 SymPy 配置文件启动 IPython:

    $ ipython --profile=sympy
    
    
  3. 使用以下屏幕快照中所示的命令扩展代数表达式:How to do it...

另见

  • SymPy 主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPT、科技、人类的生产、知识与未来(上)

本文将继续结合GPT探讨人工智能技术升级可能对人类社会带来的影响。主要还是侧重历史、社会、文化、经济、政治等角度。 问题的提出&#xff1a;ChatGPT等工具会提高人的工作效率和产出。但它会让人类使用者自身变得更“聪明”&#xff0c;还是“更笨”&#xff1f;更“强”&am…

8个商用图片素材库,你一定要收藏

在日常生活中&#xff0c;经常需要用到图片素材&#xff0c;但很多图片是有版权的&#xff0c;使用不当就会造成侵权。如何找到既能免费下载还能商用的图片素材呢~下面我就要把我收藏多年的商用图片素材网分享出来&#xff0c;希望对大家有帮助&#xff01; 1、菜鸟图库 https…

ROS如何进行开发?

文章目录0、引言1、安装ROS2、ROS创建工作空间和功能包3、在ROS中使用C代码4、在ROS中使用Python代码0、引言 笔者研究生的课题是关于多传感器数据融合的&#xff0c;传感器数据获取一般是通过Arduino或者树莓派获取&#xff0c;Arduino主要偏硬件开发&#xff0c;一般数据处理…

sql语法:详解DDL

Mysql版本&#xff1a;8.0.26 可视化客户端&#xff1a;sql yog 目录一、DDL是什么&#xff1f;二、和数据库相关的DDL2.1 创建数据库2.2 删除数据库2.3 查看所有的数据库&#xff0c;当前用户登录后&#xff0c;可以看到哪些数据库2.4 查看某个数据库的详细定义2.5 修改数据库…

在深圳做了5年软件测试,到头来啥也不是~

本科非计算机专业&#xff0c;在深圳做了5年软件测试工作&#xff0c;从一开始一脸懵的点点点&#xff0c;到现在会自动化测试了&#xff0c;浅谈一下从事软件测试的一点点心得体会&#xff0c;仅供参考交流。如果你本科且非计算机专业的话可以试下&#xff08;但就目前环境建议…

谈一谈Java的ThreadLocal

目录 先说原理&#xff1a; 再上代码&#xff1a; 运行结果&#xff1a; 先说原理&#xff1a; ThreadLocal 是一个本地线程副本变量工具类&#xff0c;它可以在每个线程中创建一个副本变量&#xff0c;每个线程可以独立地修改自己的副本变量&#xff0c;而不会影响其他线程…

测试的价值不仅仅是找

测试的价值不仅仅是找Bug 在我测试工作的前5年&#xff0c;一直以为测试的目标和价值就是在黑盒测试活动中找bug&#xff0c;以找到bug越多越自豪。但当我随着商业意识的不断积累&#xff0c;跳出测试的视角&#xff0c;站在公司的角度看测试时&#xff0c;会发现测试的目标是商…

linux驱动学习加强版-5(ioctl的使用)

文章目录一、添加ioctl控制节点二、修改测试APP2.1 测试APP的代码&#xff1a;2.2 驱动代码&#xff1a;ioctl是用户空间和内核空间相互交流时候用的比较多的一种手段。我们也可以在HAL层通过ioctl调到驱动里面。一、添加ioctl控制节点 先看patch 吧 这是在驱动中添加的ioct…

个人-计算机操作系统第五章

第五章 虚拟存储器 一、章节练习 1.系统抖动是指( )。 A. 使用机器时&#xff0c;千万屏幕闪烁的现象 B. 刚被调出的页面又立刻被调入所形成的频繁调入调出现象 C. 系统盘不净&#xff0c;千万系统不稳定的现象 D. 由于内存分配不当&#xff0c;偶然造成内存不够…

02-神经网络基础

一、从机器学习到神经网络 1. 两层神经网络 - 多层感知机 2. 浅层神经网络特点 (1)需要数据量小、训练速度快; (2)对复杂函数的表示能力有限,泛化能力受到制约。 Kurt Hornik 证明了理论上两层神经网络足以拟合任意函数,而且过去没有足够的数据和计算能力,因此之前的…

兰伯特光照模型(Lambert Lighting)和半兰伯特光照模型(Half-Lanbert)

关于漫反射 光打到凹凸不平的平面上&#xff0c;光线会被反射到四面八方&#xff0c;被称为漫反射 关于这种模型&#xff0c;由于光线由于分散&#xff0c;所以进入人眼的光线强度和观察角度没有区别 在A点和B点接收到的光线强度是一样的 在漫反射下&#xff0c;光线强度只和光…

卫龙携手契约锁,推动人事、采购、销售业务电子签

知名辣味休闲食品企业——卫龙&#xff0c;携手契约锁就印章管控及电子签章技术展开合作&#xff0c;打造覆盖总部及20多家子公司的印章管控平台&#xff0c;以现有泛微OA、钉钉APP为基础&#xff0c;推动人事、采购、销售业务电子签&#xff0c;通过签字、盖章无纸化&#xff…

使用Navicat进行ssh通道连接MySQL数据库

1、正常打开连接窗口&#xff0c;选择SSH&#xff1b; 2、填写完SSH对应参数&#xff0c;重新选择常规&#xff1b; SSH参数&#xff1a; 主机 > 服务器IP 端口 > 22 【一般22&#xff0c;SSH监听端口】 用户名 > 登录服务器账户 密码 > 登录服务器密码常规的参数…

mplfinancet绘制K线图

mplfinancet绘制K线图 1、安装 安装速度快 pip install mplfinance -i https://pypi.tuna.tsinghua.edu.cn/simple C:\Users>pip install mplfinance -i https://pypi.tuna.tsinghua.edu.cn/simple Defaulting to user installation because normal site-packages is not …

35岁的测试工程师被公司强行辞退,感叹道:我以前就该好好努力了

曾经的高薪软件测试工程师&#xff0c;今年35岁了&#xff0c;被公司劝退了&#xff0c;外卖跑到凌晨&#xff0c;很累&#xff0c;但还是有一种想诉说的冲动。哪怕让大家觉得已经说得太多了&#xff0c;烦了&#xff0c;都成祥林嫂了&#xff0c;但是&#xff0c;我是真的想说…

js:手写一个promise

背景 promise 作为前端开发中常用的函数&#xff0c;解决了 js 处理异步时回调地狱的问题&#xff0c;大家应该也不陌生了&#xff0c;今天来学习一下 promise 的实现过程&#xff0c;这样可以加&#xff08;面&#xff09;深&#xff08;试&#xff09;理&#xff08;要&…

第八天并发编程篇

一、简述线程、进程、程序的基本概念&#xff1f; 1.进程&#xff1a; 我们把运行中的程序叫做进程,每个进程都会占用内存与CPU资源,进程与进程之间互相独立. 2.线程&#xff1a; 线程就是进程中的一个执行单元&#xff0c;负责当前进程中程序的执行。一个进程可以包含多个线程…

Matlab在线IDE:计算定积分上限

上一篇文章&#xff1a;Matlab在线IDE&#xff1a;MATLAB Online介绍与计算定积分案例 1、案例介绍 % 定义符号变量 x syms x;% 定义函数 f(x) x f x;% 定义定积分的值 I I 2;% 计算函数 f(x) 在 [0, x] 区间的定积分&#xff0c;并求其反函数 F(x) F finverse(int(f, 0, …

【hello Linux】Linux软件管理器yum

目录 1.Linux软件管理器yum 1.1 关于lrzsz 1.2 使用yum时的注意事项 1.3 查看软件包&#xff1a;yum list 1.4 安装软件&#xff1a;yum install 1.5 卸载软件&#xff1a;yum remove 1.6 更新yum源 1.7 实战项目 Linux&#x1f337; 1.Linux软件管理器yum 在windows系统下有应…

ROS学习——艰辛的环境安装之路一Ubuntu

文章目录Ubuntu安装和下载页面设置安装Vmware Tools安装VSCODE用几个常用命令简单熟悉下UbuntuUbuntu 安装和下载 Ubuntu的安装和下载 看这个链接 Ubuntu安装和下载1 或者这个链接 Ubuntu安装和下载2 页面设置 安装Vmware Tools 看这个链接 VMware Tools的介绍和安装 安装…