首页 > 编程语言 >Python数据科学手册笔记:IPython

Python数据科学手册笔记:IPython

时间:2023-12-23 16:13:59浏览次数:58  
标签:__ Ctrl Python 可以 len 手册 Ipython IPython 快捷键

目录

Ipython帮助文档

在ipython里面,有时需要去查询一个python对象,这个时候可以利用一些快捷符号来获得。

用符号?来查来文档

每一个python对象都有一个字符串的引用,即docstring,大多数情况下,这个部分会简要介绍和使用方法。Python内置一个help() 函数可以获取这些信息,并打印输出结果。

help(len)
-------------------------------------------------
Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

在ipython中,可以直接在对象后面加一个? 来获取:

len?
-------------------------------------------------
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

用??来获取源代码

我们可以通过?? 来直接查询源代码:

In [1]: def square(a):
   ...:     '''Return the square of a'''
   ...:     return a ** 2

# ??来查看源码
In [2]: square??
Signature: square(a)
Source:
def square(a):
    '''Return the square of a'''
    return a ** 2
File:      c:\users\<ipython-input-7-bc38739afe33>
Type:      function

如果你用?? 发现它并不显示源码,说明它不是用python写的,而可能是用别的语言写的,比如len 这种

In [3]: len??
Signature: len(obj, /)
Docstring: Return the number of items in a container.
Type:      builtin_function_or_method

补全方法

这里有两种方法可以补全,一种是利用tab ,一种是利用通配符

利用tab

可以在输入对象名称,再加上一个句号.tab

In [10]: L = [1,2,3]

In [11]: L.<tab>
            append()  count()   insert()  reverse()
            clear()   extend()  pop()     sort()
            copy()    index()   remove()

在列表中会通常屏蔽掉私有方法(虽然python实际没有这样特别实现方法),我们可以加_ 下划线让它展示出来

In [11]: L.__<tab>
  __add__             __delattr__         __eq__              __getitem__()       __imul__
  __class__           __delitem__         __format__()        __gt__              __init__
  __class_getitem__() __dir__()           __ge__              __hash__            __init_subclass__() >
  __contains__        __doc__             __getattribute__    __iadd__            __iter__

在导入包时候,这个也可以帮助查找对象。

In [11]: import itertools import c<tab>
  calendar           cgitb              cmd                collections        commctrl           contextlib
  certifi            charset_normalizer code               colorama           compileall         contextvars
  cffi               chunk              codecs             colorsys           concurrent         copy               >
  cgi                cmath              codeop             comm               configparser       copyreg

但是tab有一个问题是,你必须记住前面的字母,但是如果你只是记住了后面字母,tab就无法使用了,这里就需要使用通配符。

利用*?来补全

可以在字母前用*来搜索:

In [12]: *Warning?
BytesWarning
DeprecationWarning
EncodingWarning
FutureWarning
ImportWarning
PendingDeprecationWarning
ResourceWarning
RuntimeWarning
SyntaxWarning
UnicodeWarning
UserWarning
Warning

Ipython快捷键

类别 快捷键 动作
导航快捷键 Ctrl+a 光标移动本行开始
Ctrl+e 光标移动本行结尾
Ctrl+b(或者左箭头) 将光标回退一个字符
Ctrl+f(或者右箭头) 将光标前进一个字符
文本输入快捷键 Ctrl+d 删除后一个字符
Ctrl+k 从光标开始剪切至行末尾
Ctrl+u 从行的开头剪切至光标
Ctrl+y 粘贴之前剪切的文本
Ctrl+t 交换前两个字符
历史快捷键 Ctrl+p(向上箭头) 取前一个历史命令
Ctrl+n(向下箭头) 取后一个历史命令
Ctrl+r 对历史命令反向搜索
其他快捷键 Ctrl+l 清除终端屏幕内容
Ctrl+c 中断当前命令
Ctrl+d 退出会话

Ipython魔法命令

粘贴代码块

有时候从网站复制代码块的时候,会发现一些不可预料的错误,比如包含缩进和解释符号。一个常见的解决方法是之前写一个%paste 。如果交互的化,就可以用cpaste

执行外部代码

在使用Ipython的时候,如果想使用外部编写的脚本,就可以使用%run 。比如有一个test.py 我们可以使用:

%run test.py

计算代码运行时间

在运行代码前加一个time 或者timeit 来计算。

In [19]: %time [ i for i in range(2)]
CPU times: total: 0 ns
Wall time: 0 ns
Out[19]: [0, 1]

In [20]: %timeit [ i for i in range(2)]
267 ns ± 32.4 ns per loop (mean ± std. dev. of 7 runs, 1,000,000 loops each)

特别说明一点,如果你的语句很复杂,timeit 就会自动调整,不会执行那么多次了。

内存分析

这个要选安装pip install memory_profiler

利用Ipython导入扩展

%load_ext memory_profiler

然后可以用memit 来查看内存

%memit sum_of_list(10000)

如果想逐行, 就使用mprun ,但是这个只对独立内部函数有效,所以要用%%file 创建简单模块,将该模块命为x.py。

%%file x.py
...

from x import function
%mprun -f function

魔法函数帮助

如果想查询魔法函数使用,也可以后面加个?号

In [21]: %time?
Docstring:
Time execution of a Python statement or expression.
...(省略)

魔法函数通用描述以及一些示例:

%magic

如果魔法函数列表:

%lsmagic

错误和调试

控制异常:%xmode

%xmode 有Plain\Context\Verbose 模式。如果一般是Context,简易有Plain,详细包括变量赋值Verbose。

%xmode Verbose

调试模型:%debug

可以用%debug 打印a和b值,然后输入quit来结束。

输入输出历史

在Ipython中,InOut也是变量,所以你可以通过print 来查看。

In [23]: print(In) #返回是历史输入列表

In [24]: print(Out) #返回的是字典

如果想快速查看以前输出,可以使用下划线:

print(_)

每多一个下划线,就可以前查看一个,最多可以用这个方法查看前三个输出结果:print(___)

禁止输出

如果想不输出结果,可以在语句后面加一个;

历史输入

%history 可以获得此前所有输入历史,如果想看前x条:

$history -n 1-x

Ipython和shell命令

可以使用! 加上shell命令,比如ls

而且可以通过赋值操纵符将shell输出保存在python列表

contents = !ls

特别注意notebook中shell命令是在临时分支的shell执行的,所以如果希望持久方式更改路径可以用%cd或者可以不用%(这种是自动魔法automagic函数,可以通过%automagic魔法函数进行翻转。)比如cat\cp\env\ls\man\mkdir\more\mv\pwd\rm\rmdir 不加%也可以。

标签:__,Ctrl,Python,可以,len,手册,Ipython,IPython,快捷键
From: https://www.cnblogs.com/hsinyu/p/17923217.html

相关文章

  • cmd 运行 python 常用快捷键
    在Windows命令行下运行Python文件,你可以按照以下步骤操作¹:打开Windows下的terminal。快捷键是Win+R,然后在框中输入cmd并回车¹。使用cd命令和dir命令找到要编辑运行的Python文件。如果还未创建,可以使用typenul>*.py创建Python文件(*代指文件名)¹。编辑P......
  • Excel: Python 如何干掉 VBA 系列 丙
    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/FgoU8CxofwY90f3IX2Tpww获取网络动态数据本文开始之前夸过海口,说要演示一下喂养家畜的饲料动态成本,其实由于行业数据具有一定的商业属性,调用这类接口费钱,所以不打算展开了。......
  • python脚本打包api flask pyinstaller
    如果你想将Python脚本打包成API,你可以使用Flask框架³。以下是一个简单的步骤:安装Flask。你可以使用pip来安装Flask³:pipinstallFlask创建一个新的Python文件,例如app.py³。在这个文件中,你可以定义你的API接口³。如果你想将Python脚本打包成可执行程序,你可以使用PyInstaller¹。......
  • python不常用但有用的知识
    目录python解释器什么是python解释器什么是虚拟环境解释器?如何查看python解释器的位置?虚拟环境什么是虚拟环境?virtualenvironment虚拟环境和全局环境的关系有了虚拟环境是否可以删除全局环境?如何创建虚拟环境——方法1?(想看就看看,不看也没关系,反正也不用)......
  • 随机幸运号码自动生成器之Python宝典【上】
    一、前言需求背景描述前面我编写了一段能生成随机幸运号码的代码,但是并不实用,每次去买颜色艳丽的票之前都需要在PyCharm上运行并将幸运号码在控制台打印出来为解决这个问题,尝试使用Python的ttkbootstrap实现简单的号码展示,并根据当前日期展现对应类型(超级彩票、彩色球票)的幸运号码,......
  • Python算法——树的直径
    Python中的树的直径算法详解树的直径是树中任意两个节点之间最长路径的长度。在本文中,我们将深入讨论树的直径问题以及如何通过深度优先搜索(DFS)算法来解决。我们将提供Python代码实现,并详细说明算法的原理和步骤。树的直径树的直径定义为树中任意两个节点之间最长路径的长度。这个......
  • python 最长公共前缀 5种解法
    解法一:水平扫描这是最简单的一种方法,逐个字符比较每个字符串的相应位置,直到遇到不匹配的字符为止。deflongest_common_prefix(strs):ifnotstrs:return""prefix=strs[0]foriinrange(1,len(strs)):whilestrs[i].find(prefix)!=0:......
  • 利用Python select模块实现多路I/O复用
    在开发网络服务时,能够同时处理多个网络连接是非常重要的。传统的方法是为每个连接创建一个新线程或进程,但这在大规模时可能会导致资源耗尽。更高效的做法是使用I/O多路复用,让一个线程能够监视多个文件描述符的状态变化。在Python中,我们可以通过select模块来实现这一功能。本文将介......
  • python之列表常用方法
    常用方法:函数名说明len(list)返回列表元素个数max(list)返回列表中元素最大值min(list)返回列表中元素最小值list(tup)将元组转换为列表list.append(obj)添加obj对象到列表的末尾list.count(obj)返回obj在列表中出现的次数list..extend(seq)在列表中添加指定序列(是序列,不单只列表),函......
  • python基础007----递归函数&闭包&装饰器
    一、递归函数1、递归函数概念    直接或间接的调用自身的函数,称为递归函数。每调用一次自身,相当于复制一份该函数,只不过参数有变化,参数的变化,就是重要的结束条件。2、递归函数实例#####递归函数######1、普通实现:计算n!=1*2*3*4*5*6*...*nn=int(input('普通实现阶乘,......