首页 > 编程语言 >NumPy 秘籍中文第二版:一、使用 IPython

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

时间:2023-04-16 22:32:22浏览次数:46  
标签:命令 秘籍 NumPy 笔记本 ipython install IPython 安装

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

  • 安装 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
  1. 相反,如果您已安装 Git,则可以克隆 Git 存储库:
$ git clone https://github.com/ipython/ipython.git
  1. 转到下载源中的根目录:
$ cd ipython
  1. 运行安装脚本。 这可能需要您使用sudo运行命令,如下所示:
$ sudo python setup.py install

工作原理

我们使用几种方法安装了 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

工作原理

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

另见

阅读手册页

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

操作步骤

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

  • 调用帮助功能:调用help命令。 输入该功能的几个字符,然后按Tab键(请参见以下屏幕截图):
  • NumPy 秘籍中文第二版:一、使用 IPython_Python

  • 带问号的查询:另一个选择是在函数名称后添加问号。 然后,您当然需要知道函数名称,但是不必键入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
  • 从源代码安装:您可以下载 Sourceforgetar.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 包管理器。

另见

运行 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 上启动。稍后,您将在本章中学习如何配置这些设置。 笔记本在默认浏览器中打开; 这也是可配置的(请参见以下屏幕截图):

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

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

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

这将加载SciPyNumPymatplotlib模块。

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

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

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

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

工作原理

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

另见

导出 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后进入笔记本页面的示例:

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

配置笔记本服务器

公共笔记本服务器需要安全。 您应该设置一个密码并使用 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'

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

  1. 要创建 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
  1. 使用以下命令为服务器创建特殊的配置文件:
$ ipython profile create nbserver
  1. 编辑配置文件。 在此示例中,可以在~/.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。

  1. 使用以下命令,启动服务器以检查更改是否有效:
$ 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 连接到它。 如果一切顺利,您应该会看到一个登录页面。 另外,您可能需要在浏览器中接受安全例外。

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

工作原理

我们为公共服务器创建了一个特殊的配置文件。 已经有一些样本概要文件,例如默认概要文件。 创建配置文件后,将使用配置文件将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

另见

探索 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 包
  • 定义符号
  1. 使用以下命令以 SymPy 配置文件启动 IPython:
$ ipython --profile=sympy
  1. 使用以下屏幕快照中所示的命令扩展代数表达式:
  2. NumPy 秘籍中文第二版:一、使用 IPython_Python_06

另见


标签:命令,秘籍,NumPy,笔记本,ipython,install,IPython,安装
From: https://blog.51cto.com/wizardforcel/6193846

相关文章

  • NumPy 初学者指南中文第三版:11~14
    十一、玩转Pygame本章适用于希望使用NumPy和Pygame快速轻松创建游戏的开发人员。基本的游戏开发经验会有所帮助,但这不是必需的。您将学到的东西如下:pygame基础matplotlib集成表面像素数组人工智能动画OpenGLPygamePygame是Python框架,最初由PeteShinners编写,顾名思义......
  • NumPy 秘籍中文第二版:五、音频和图像处理
    在本章中,我们将介绍NumPy和SciPy的基本图像和音频(WAV文件)处理。在以下秘籍中,我们将使用NumPy对声音和图像进行有趣的操作:将图像加载到内存映射中添加图像图像模糊重复音频片段产生声音设计音频过滤器使用Sobel过滤器进行边界检测简介尽管本书中的所有章节都很有趣,但在本......
  • NumPy 秘籍中文第二版:二、高级索引和数组概念
    在本章中,我们将介绍以下秘籍:安装SciPy安装PIL调整图像大小比较视图和副本翻转Lena花式索引位置列表索引布尔值索引数独的步幅技巧广播数组简介NumPy以其高效的数组而闻名。之所以成名,部分原因是索引容易。我们将演示使用图像的高级索引技巧。在深入研究索引之前,我们将安装必......
  • NumPy简介
    NumPy简介NumPy是Python中的一个开源库,它有助于数学、科学、工程和数据科学编程。它是一个非常有用的库,可以在Python中进行数学和统计操作。它对多维数组和矩阵乘法有完美的效果。它很容易与C/C++和Fortran集成。对于任何科学项目,NumPy都是需要了解的工具。它用于处理N维数组、......
  • NumPy 和 Pandas 数据分析实用指南:1~6 全
    原文:Hands-OnDataAnalysiswithNumPyandpandas协议:CCBY-NC-SA4.0译者:飞龙一、配置Python数据分析环境在本章中,我们将介绍以下主题:安装Anaconda探索Jupyter笔记本探索Jupyter的替代品管理Anaconda包配置数据库在本章中,我们将讨论如何安装和管理Anac......
  • NumPy 基础知识 :6~10
    原文:NumpyEssentials协议:CCBY-NC-SA4.0译者:飞龙六、NumPy中的傅立叶分析除其他事项外,傅立叶分析通常用于数字信号处理。这要归功于它在将输入信号(时域)分离为以离散频率(频域)起作用的分量方面如此强大。开发了另一种快速算法来计算离散傅里叶变换(DFT),这就是众所周知的快......
  • 机器学习(六):回归分析——鸢尾花多变量回归、逻辑回归三分类只用numpy,sigmoid、实现RANS
    [实验1回归分析]一、预备知识使用梯度下降法求解多变量回归问题数据集Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数据,每条记录都有4项特征:花萼长度、花萼宽度、花瓣长度、花瓣宽度,可......
  • 精通 NumPy 数值分析:6~9
    原文:MasteringNumericalComputingWithNumPy协议:CCBY-NC-SA4.0译者:飞龙六、NumPy,SciPy,Pandas和Scikit-Learn到目前为止,您应该能够使用NumPy编写小型实现。在整个章节中,我们旨在提供使用其他库的示例,在本章中,我们应退后一步,看看可以与NumPy一起用于项目的周围库......
  • NumPy 数组学习手册:1~5
    原文:LearningNumPyArray协议:CCBY-NC-SA4.0译者:飞龙一、NumPy入门让我们开始吧。我们将在不同的操作系统上安装NumPy和相关软件,并查看一些使用NumPy的简单代码。正如“序言”所述,SciPy与NumPy密切相关,因此您会在本章中看到SciPy这个名字。在本章的最后,您将......
  • NumPy 数组学习手册:6~7
    原文:LearningNumPyArray协议:CCBY-NC-SA4.0译者:飞龙六、性能分析,调试和测试分析,调试和测试是开发过程的组成部分。您可能熟悉单元测试的概念。单元测试是程序员编写的用于测试其代码的自动测试。例如,这些测试可以单独测试函数或函数的一部分。每次测试仅测试一小部分......