渲染脚本文件
人工智能与机器学习
概述
人工智能(AI)和机器学习(ML)是当今科技领域最热门的话题之一。AI是指计算机系统能够执行通常需要人类智能的任务,如视觉识别、语音识别和决策制定。ML是AI的一个子集,专注于开发能够从数据中学习的算法。
关键技术
深度学习
深度学习是ML的一个分支,使用多层神经网络来处理复杂的数据模式。它在图像和语音识别方面取得了显著的成果。
强化学习
强化学习是一种通过试错来学习的ML方法。它通常用于游戏和机器人控制等领域。
应用领域
医疗保健
AI和ML在医疗诊断、药物发现和个性化治疗方面有广泛应用。
金融
在金融领域,AI用于风险管理、欺诈检测和算法交易。
挑战
数据隐私
随着AI和ML的发展,数据隐私成为一个重要问题。如何在不侵犯个人隐私的情况下利用数据是一个挑战。
伦理问题
AI系统的决策过程可能不透明,这引发了关于伦理和责任的讨论。
未来展望
AI和ML的未来充满希望,但也伴随着挑战。随着技术的进步,我们期待看到更多创新的应用和解决方案。
概述
Quarto 支持渲染特殊格式化为笔记本的脚本文件(例如 .py
、.jl
或 .r
)。该格式的具体语法对于 Jupyter 和 Knitr 引擎是不同的。Jupyter 引擎可以渲染 Python、Julia 和 R(使用 IRkernel)脚本,而 Knitr 引擎只渲染 R 脚本。
在本页上,您可以学习 Jupyter 和 Knitr 笔记本脚本的 语法,如何 渲染和预览 笔记本脚本,以及如何在项目中使用笔记本 脚本。
语法
划分 YAML、代码和 Markdown 的语法取决于您是使用 Jupyter 还是 Knitr 引擎进行渲染。对于 Python 和 Julia 脚本,请使用 Jupyter 引擎。对于 R 脚本,您可以使用 Jupyter 或 Knitr 引擎。
Jupyter
Jupyter 的脚本渲染使用 百分比格式,该格式由 Spyder、VS Code、PyCharm 和 Jupytext 等其他工具支持。
在百分比格式中:
Markdown 单元格由
# %% [markdown]
分隔,可以包含单行注释(#
)或多行字符串("""
)的内容。代码单元格由
# %%
分隔。
还有一些 Quarto 特定的添加:
脚本必须以包含 YAML 头块的 Markdown 单元格开头(包括通常的
---
YAML 分隔符)。您可以以通常的方式使用
#|
注释添加代码单元格选项。
例如,这是一个包含 Markdown 和代码单元格的 Python 脚本(您可以点击右侧的数字以获取更多详细信息):
script.py
# %% [markdown]
# ---
# title: Palmer Penguins
# author: Norah Jones
# date: 3/12/23
# ---
# %%
#| echo: false
import pandas as pd
= pd.read_csv("palmer-penguins.csv")
df
# %% [markdown]
"""
## 探索数据
查看 @fig-bill-sizes 以了解不同物种的喙大小探索。
"""
# %%
#| label: fig-bill-sizes
#| fig-cap: 不同物种的喙大小
import matplotlib.pyplot as plt
import seaborn as sns
= sns.FacetGrid(df, hue="species", height=3, aspect=3.5/1.5)
g map(plt.scatter, "bill_length_mm", "bill_depth_mm").add_legend() g.
- 1
- 使用 Quarto 渲染的脚本必须以包含 YAML 头的 Markdown 单元格开头。
- 2
- 一个代码单元格。
- 3
-
包含多行字符串(
"""
)的 Markdown 单元格。 - 4
-
使用
#|
注释指定的代码单元格选项。 - 5
- 您可以在单元格内包含空行——单元格继续直到遇到另一个单元格。
生成 Markdown
当文档的大部分内容由动态生成 Markdown 的代码组成时,Jupyter 脚本特别方便。您可以使用 IPython.display
模块中的函数从 Python 编写 Markdown。例如:
# %%
#| echo: false
= 10
radius from IPython.display import Markdown
f"圆的_半径_是 **{radius}**。") Markdown(
请注意,动态生成的 Markdown 仍然会被包含在标准的 Quarto 输出 div 中。如果您想移除所有 Quarto 的默认输出封装,请使用 output: asis
选项。例如:
# %%
#| echo: false
#| output: asis
= 10
radius from IPython.display import Markdown
f"圆的_半径_是 **{radius}**。") Markdown(
原始单元格
您可以在脚本中使用 # %% [raw]
单元格分隔符和 format
属性包含原始单元格(例如 HTML 或 LaTeX),例如:
# %% [raw] format="html"
"""
<iframe width="560" height="315" src="https://www.youtube.com/embed/lJIrF4YjHfQ?si=aP7PxA1Pz8IIoQUX"></iframe>
"""
Knitr
Knitr 的脚本渲染基于 knitr::spin()
功能,并使用相同的 语法规则:
Markdown 内容包含在以特殊
#'
注释开头的行中。不以
#
开头的行是代码。代码块在出现 Markdown 内容时被分割,例如使用#'
创建另一个代码块。
还有一些 Quarto 特定的添加: - R脚本必须以使用特殊#'
注释的YAML头部块开始。
- 您可以像往常一样使用
#|
注释添加代码单元选项。
例如,这里是一个包含Markdown和代码单元的R脚本(您可以点击右侧的数字获取更多详细信息):
script.R
#' ---
#' title: 帕尔默企��
#' author: 诺拉·琼斯
#' date: 3/12/23
#' format: html
#' ---
library(palmerpenguins)
#' ## 探索数据
#' 参见 @fig-bill-sizes 以探索按物种分类的喙尺寸。
#| label: fig-bill-sizes
#| fig-cap: 按物种分类的喙尺寸
#| warning: false
library(ggplot2)
ggplot(data = penguins,
aes(x = bill_length_mm,
y = bill_depth_mm,
group = species)) +
geom_point(aes(color = species,
shape = species),
size = 3,
alpha = 0.8) +
labs(title = "企鹅喙的尺寸",
subtitle = "在帕尔默站LTER的阿德利、下巴和帝企鹅的喙长度和深度",
x = "喙长度 (mm)",
y = "喙深度 (mm)",
color = "企鹅种类",
shape = "企鹅种类")
- 1
-
使用Quarto渲染的脚本必须以使用
#'
注释的YAML头部开始。 - 2
- R代码是R脚本的主要内容,不包含任何分隔符。
- 3
-
使用
#'
注释作为Markdown内容的前缀。 - 4
-
代码单元选项通过
#|
注释指定,并适用于其下方的代码。
渲染和预览
您可以像渲染.qmd
或.ipynb
文件一样渲染和预览笔记本脚本。例如,以下命令都是有效的:
$ quarto render script.py
$ quarto render script.jl
$ quarto render script.R
$ quarto preview script.py
$ quarto preview script.jl
$ quarto preview script.R
脚本必须以适当的语法开始,以便使用Quarto渲染YAML块。根据检测到的语法,Quarto将使用Jupyter或Knitr引擎进行渲染。
Quarto VS Code扩展也实现了对脚本渲染和预览的支持。
项目中的脚本
笔记本脚本也可以包含在项目(例如网站、博客等)中。只有当它们以适当的语法开始时,Quarto才会渲染项目中的脚本。
如果出于某种原因您需要忽略这样的脚本,您可以在_quarto.yml
中创建一个明确的渲染列表,根据需要排除个别脚本,例如:
project:
type: website
render:
- "*.{qmd,R,py}"
- "!utils.py"
请注意,此技术是为完整性而记录的——在实践中,您几乎不需要这样做,因为脚本很少在没有YAML块的情况下开始,除非您专门为报告渲染编写它们。