一、Jupyter 笔记本

    这是 Jupyter 笔记本的快速介绍。

    Jupyter 笔记本是一种将可执行代码,代码输出和文本组合到一个连接文件中的方法。

    项目 Jupyter 的官方文档在,他们也有一些示例笔记本在这里

    要快速浏览 Jupyter 用户界面,请单击“帮助”菜单,然后单击“用户界面浏览”。

    还有大量有用的键盘快捷键。单击“帮助”菜单,然后单击“键盘快捷键”来查看列表。

    单元格

    笔记本的主要组织结构是“单元格”。

    单元格,可以是 markdown(文本),就像这一个或代码单元格(我们会看到他们)。

    Markdown 单元格用于传达有关我们笔记本的信息。

    双击本节中的任何单元格以查看纯文本的外观。运行单元格,然后查看格式化的 Markdown 文本的外观。

    我们可以将我的文本斜体化,像或_这样_

    我们可以像**这样**或像__这样__加粗我的文本。

    这是一个无序的项目列表:

    1. * 这是一个项目
    2. * 这是一个项目
    3. * 这是一个项目

    这是一个有序的项目列表:

    1. 1. 这是我的第一个项目
    2. 2. 这是我的第二个项目
    3. 3. 这是我的第三个项目

    我们可以使用缩进来获得嵌套列表:

    1. * 这是一个项目
    2. * 这是一个项目
    3. * 这是一个项目
    4. * 这是一个项目
    5. * 这是一个项目

    我们还可以组合有序和无序列表:

    1. 1. 这是我的第一个项目
    2. 2. 这是我的第二个项目
    3. * 这是一个项目
    4. * 这是一个项目
    5. 3. 这是我的第三个项目

    我们可以这样链接到这个[有用的 markdown 速查表](https://www.markdownguide.org/cheat-sheet/)

    如果我们不对链接使用 markdown 语法,它只会将链接本身显示为链接文本:https://www.markdownguide.org/cheat-sheet/

    LaTeX 格式文本

    1. # 代码单元格中可以输入注释。
    2. a = 1
    3. b = 2
    4. # 单元格也可以有输出,打印输出到单元格下方。
    5. print(a + b)
    6. # 3
    7. my_string = 'hello world'
    8. print(my_string)
    9. # hello world
    10. # TAB 补全,print(my_string.upper())
    11. my_string.upper()
    12. # 'HELLO WORLD'
    13. my_list = ['a','b','c']
    14. print(my_list)
    15. # ['a', 'b', 'c']

    Jupyter 有很多有用的快捷方式。在函数或类之后添加一个 ‘?’ 获取带有文档的窗口,或者两个 ‘??’ 来拉出源代码。

    1. # 为示例导入 NumPy
    2. import numpy as np
    3. # 检查 NumPy 数组的文档
    4. np.array?
    5. # 检查 numpy append 函数的完整源代码
    6. np.append??
    7. # 获取你创建的变量的信息
    8. my_string?

    自动补全

    1. # 移动光标到点号之后,按 Tab 键
    2. # 将出现一个下拉菜单,显示所有可能的补全
    3. np.
    4. # 自动填充不一定在点号处。移至 'ra' 的末尾并按 Tab 键查看补全选项。
    5. ra
    6. # 如果只有一个选项,tab 补全将自动补全你输入的内容。
    7. ran

    你不需要按顺序运行单元格!这对于灵活地测试和开发代码很有用。

    单元格左侧方括号中的数字表示哪个单元格已运行以及按什么顺序运行。

    但是,它也很容易丢失已经声明/导入的内容,导致运行单元格时的意外行为。

    内核是将笔记本连接到计算机后台来执行代码的东西。

    清除并重新启动内核非常有用。你可以从顶部的“内核”下拉菜单执行此操作,也可以选择清除所有输出。

    魔术命令

    “魔术命令”是 IPython / Jupyter 中一种特殊的(命令行)语法,用于运行特殊功能。它们可以在某行和/或整个单元上运行。

    iPython 提供了魔术命令的更多信息。

    魔术命令旨在简洁地解决标准数据分析中的各种常见问题。魔术命令有两种形式:行魔术,由单个%前缀表示并在单行输入上操作,以及单元魔术,由双%%前缀表示,并在多行输入上操作。

    1. # 访问快速参考清单
    2. %quickref
    3. %lsmagic
    4. Available line magics:
    5. %alias %alias_magic %autocall %automagic %autosave %bookmark %cat %cd %clear %colors %config %connect_info %cp %debug %dhist %dirs %doctest_mode %ed %edit %env %gui %hist %history %killbgscripts %ldir %less %lf %lk %ll %load %load_ext %loadpy %logoff %logon %logstart %logstate %logstop %ls %lsmagic %lx %macro %magic %man %matplotlib %mkdir %more %mv %notebook %page %pastebin %pdb %pdef %pdoc %pfile %pinfo %pinfo2 %popd %pprint %precision %profile %prun %psearch %psource %pushd %pwd %pycat %pylab %qtconsole %quickref %recall %rehashx %reload_ext %rep %rerun %reset %reset_selective %rm %rmdir %run %save %sc %set_env %store %sx %system %tb %time %timeit %unalias %unload_ext %who %who_ls %whos %xdel %xmode
    6. Available cell magics:
    7. %%! %%HTML %%SVG %%bash %%capture %%debug %%file %%html %%javascript %%js %%latex %%markdown %%perl %%prun %%pypy %%python %%python2 %%python3 %%ruby %%script %%sh %%svg %%sx %%system %%time %%timeit %%writefile
    8. Automagic is ON, % prefix IS NOT needed for line magics.
    9. '''
    10. # 查看当前工作目录
    11. %pwd
    12. # '/Users/shannonellis/Desktop/Teaching/COGS108/Tutorials'
    13. # 所有变量
    14. %who
    15. # a b my_list my_string np
    16. # 所有变量;更多信息
    17. %whos
    18. '''
    19. Variable Type Data/Info
    20. -------------------------------
    21. a int 1
    22. b int 2
    23. my_list list n=3
    24. my_string str hello world
    25. np module <module 'numpy' from '/an<...>kages/numpy/__init__.py'>
    26. '''
    27. # 历史
    28. %hist
    29. '''
    30. ### Markdown 单元
    31. # 历史
    32. %hist
    33. # 指定你正在编写 HTML
    34. %%HTML
    35. <p>This is a paragraph</p>
    36. %%bash
    37. # 等价地,(对于 bash)使用 %% bash cell 魔术,将单元格作为 bash 运行(命令行)
    38. pwd
    39. # 在代码单元格中,可以键入注释
    40. a = 1
    41. b = 2
    42. # 单元格也可以有输出,打印输出到单元格下方。
    43. print(a + b)
    44. my_string = 'hello world'
    45. print(my_string)
    46. # Tab 补全,print(my_string.upper())
    47. my_string.upper()
    48. my_list = ['a','b','c']
    49. print(my_list)
    50. # 为示例导入 NumPy
    51. import numpy as np
    52. # 检查 NumPy 数组的文档
    53. np.array?
    54. # 检查 NumPy append 函数的完全源代码
    55. np.append??
    56. # 获取你创建的变量的信息
    57. my_string?
    58. # 移动光标到点号之后,按 Tab 键
    59. # 将出现一个下拉菜单,显示所有可能的补全
    60. np.
    61. # 在代码单元格中,可以键入注释
    62. a = 1
    63. b = 2
    64. # 单元格也可以有输出,打印输出到单元格下方。
    65. print(a + b)
    66. my_string = 'hello world'
    67. print(my_string)
    68. # tab 补全,print(my_string.upper())
    69. my_string.upper()
    70. my_list = ['a','b','c']
    71. print(my_list)
    72. # 为示例导入 NumPy
    73. import numpy as np
    74. # 检查 NumPy 数组的文档
    75. np.append??
    76. # 获取你创建的变量的信息
    77. my_string?
    78. # 移动光标到点号之后,按 Tab 键
    79. # 将出现一个下拉菜单,显示所有可能的补全
    80. np.
    81. # 访问快速参考清单
    82. %quickref
    83. # 你可以检查可用魔术命令的列表
    84. %lsmagic
    85. # 查看当前工作目录
    86. %pwd
    87. # 所有变量
    88. %who
    89. # 所有变量;更多信息
    90. %whos
    91. # 历史
    92. %hist
    93. # 例如,我们可以计算创建大型列表所需的时间
    94. %timeit list(range(100000))
    95. %%timeit
    96. # 例如,我们可以为整个单元格计时
    97. a = list(range(100000))
    98. b = [n + 1 for n in a]
    99. # 你可以通过在行的开头添加 '!' 来运行终端命令
    100. !pwd
    101. # 注意,在这种情况下,'!pwd' 等同于魔术 '%pwd'。
    102. # '!' 语法更通用,允许你通过命令行运行任何你想要的东西
    103. %%bash
    104. # 等价地,(对于 bash)使用 %% bash cell 魔术,将单元格作为 bash 运行(命令行)
    105. pwd
    106. # 列出目录中的文件
    107. !ls
    108. # 修改当前目录
    109. !cd .
    110. # 历史
    111. %hist
    112. '''

    行魔术

    行魔术使用单个 ‘%’,并应用于单行。

    单元魔术使用双“%%”,并应用至整个单元。

    1. %%timeit
    2. # 例如,我们可以为整个单元格计时
    3. a = list(range(100000))
    4. b = [n + 1 for n in a]
    5. # 6.59 ms ± 97.6 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

    运行终端命令

    1. # 你可以通过在行的开头添加 '!' 来运行终端命令
    2. !pwd
    3. # 注意,在这种情况下,'!pwd' 等同于魔术 '%pwd'。
    4. # '!' 语法更通用,允许你通过命令行运行任何你想要的东西
    5. # /Users/shannonellis/Desktop/Teaching/COGS108/Tutorials
    1. %%bash
    2. # 等价地,(对于 bash)使用 %% bash cell 魔术将单元格作为 bash 运行(命令行)
    3. pwd
    4. # /Users/shannonellis/Desktop/Teaching/COGS108/Tutorials
    1. # 列出目录中的文件
    2. !ls
    3. '''
    4. 00-Introduction.ipynb 13-OrdinaryLeastSquares.ipynb
    5. 01-JupyterNotebooks.ipynb 14-LinearModels.ipynb
    6. 02-DataAnalysis.ipynb 15-Clustering.ipynb
    7. 03-Python.ipynb 16-DimensionalityReduction.ipynb
    8. 04-DataSciencePython.ipynb 17-Classification.ipynb
    9. 05-DataGathering.ipynb 18-NaturalLanguageProcessing.ipynb
    10. 06-DataWrangling.ipynb A1-PythonPackages.ipynb
    11. 07-DataCleaning.ipynb A2-Git.ipynb
    12. 08-DataPrivacy&Anonymization.ipynb LICENSE
    13. 09-DataVisualization.ipynb README.md
    14. 10-Distributions.ipynb [34mfiles[m[m
    15. 11-TestingDistributions.ipynb [34mimg[m[m
    16. '''

    有关更多有用信息,请查看 Jupyter 笔记本提示与技巧,以及有关的更多信息。