iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >打造数据科学作品集:搭建一个数据科学博
  • 397
分享到

打造数据科学作品集:搭建一个数据科学博

科学数据作品集 2023-01-31 07:01:02 397人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这是「打造数据科学作品集」系列文章的第二篇。如果你喜欢该系列,而且想知道下一篇文章什么时候发布,你可以订阅我们。读完本文,你将学会如何使用 Pelican 静态网站生成器,搭建一个属于自己的博客,用来展示数据科学作品。 全文大约 950

这是「打造数据科学作品集」系列文章的第二篇。如果你喜欢该系列,而且想知道下一篇文章什么时候发布,你可以订阅我们。读完本文,你将学会如何使用 Pelican 静态网站生成器,搭建一个属于自己的博客,用来展示数据科学作品。

全文大约 9500 字,读完可能需要 15 分钟左右。

你可以在这里阅读本系列第一篇文章:「打造数据科学作品集:用数据讲故事」

写博客是证明你的实力、深入学习和建立读者群的好方法。有许多数据科学和编程类博客帮助他们的作者找到工作,或者认识了重要人物。定期写博客是有抱负的程序员和数据科学家最应该做的事情之一。

不幸的是,写博客的一大障碍就是先搭建一个博客网站。在这篇文章中,我们将学习如何用 python 创建一个博客网站,怎么用 Jupyter Notebook 写文章和如何通过 GitHub Pages 部署博客。读完这篇文章,你就可以使用你熟悉的方式,创建自己的数据科学博客了。

静态网站

基本上,一个静态网站就是一个全是 html 文件的文件夹。我们可以搭建一个允许别人链接到这个文件夹并获取文件的服务器。这样做的好处是不需要数据库或者其他动态部分,可以很简单的部署在像 gitHub 之类的网站上。把你的博客做成静态网站是一个好主意,因为维护起来十分简单。建立静态网站的一种方法是手写 HTML,然后上传所有的 HTML 文件到服务器。这种情况下,你至少要写一个 index.html 文件。如果你的网站的 URL 是 thebestblog.com,当访问者浏览 Http://www.thebestblog.com 时,他们就会看到 index.html 的内容了。HTML 的文件夹可能是下边的这个样子:

thebestblog.com
│   index.html
│   first-post.html
│   how-to-use-Python.html
│   how-to-do-Machine-learning.html
│   styles.CSS

在上边的这个网站里,访问 http://www.thebestblog.com/first-post.html 你就可以看到 first-post.html 的内容。first-post.html 可能是下边这个样子:

<html>
<head>
  <title>The best blog!</title>
  <meta name="description" content="The best blog!"/>
  <link rel="stylesheet" href="styles.css" />
</head>
<body>
  <h1>First post!</h1>
  <p>This is the first post in what will soon become (if it already isn't) the best blog.</p>
  <p>Future posts will teach you about data science.</p>

<div class="footer">
  <p>Thanks for visiting!</p>
</div>
</body>
</html>

你可能会立马发现手工编辑 HTML 的一些问题:

  • 手工编辑 HTML 会很枯燥。

  • 如果你想写多篇文章,你需要复制很多内容,比如样式、Title、Footer 等。

  • 如果你想整合评论系统或者其他插件,你不得不写 javascript

一般来说,你写博客的时候,想关注于博客内容,而不是在 HTML 上浪费时间。谢天谢地,你可以用一个叫做静态网站生成器的工具来取代手动编辑 HTML。

静态网站生成器

静态网站生成器可以让你用一些简单的格式写文章,通常是 markdown,然后再定义一些设置。生成器可以自动把你的文章转换为 HTMl。使用静态网站生成器,你可以把 first-post.html 极大地简化为 first-post.md

# First post!

This is the first post in what will soon become (if it already isn't) the best blog.

Future posts will teach you about data science.

这比处理 HTML 文件要简单的多!通用的元素,比如 Title 和 Footer,可以放在模板里边,这样很容易更改。

静态网站生成器多种多样。最流行的是用 Ruby 开发的 Jekyll。因为我们要搭建一个数据科学博客,所以需要网站生成器可以处理 Jupyter Notebooks。

Pelican 是一个用 Python 开发的网站生成器,可以接受 Jupyter Notebook 文件并转换成 HTML 博客文章。Pelican 也可以很容易的把文章部署到 GitHub Pages 让别人阅读。

安装 Pelican

开始之前,这里有一个仓库(repo),它就是我们最终成果的示例。

如果你还没有安装 Python,在开始之前你还需要做一些前期工作。这里有一些安装 Python 的说明。我们建议使用 python3.5。当你安装完成 Python:

  • 创建一个文件夹——我们将把博客网站的内容和样式(Styles)放在这个文件夹里。该教程把这个文件夹叫做 jupyter-blog,你可以随便起名字。

  • cd 进入 jupyter-blog 文件夹。

  • 创建一个叫 .gitignore 的文件,然后把这个文件里的内容加进去。我们最后将要把仓库提交到 git,而这将会排除一些其他东西。

  • 创建并激活一个虚拟环境。

  • jupyter-blog 文件夹里创建一个叫 requirements.txt 的文件,内容如下:

Markdown==2.6.6
pelican==3.6.3
jupyter>=1.0
ipython>=4.0
nbconvert>=4.0
beautifulsoup4
ghp-import==0.4.1
matplotlib==1.5.1
  • jupyter-blog 文件夹里运行 pip install -r requirements.txt 来安装 requirements.txt 里边所有的包。

创建数据科学博客

完成了前边的设置之后,你就做完创建博客的准备了!在 jupyter-blog 文件夹里运行 pelican-quickstart 命令,来为你的博客启动一个交互式安装序列。你将看到一些帮助你设置博客属性的问题。大多数问题你只需要点击 Enter 使用默认设置就好了。你需要输入的就是你网站的名字、网站的作者,另外就是当问到 URL prefix(URL 前缀) 和 timezone(时区) 的时候选 n。下边是个例子:

(jupyter-blog)➜  jupyter-blog ✗ pelican-quickstart
Welcome to pelican-quickstart v3.6.3.

This script will help you create a new Pelican-based WEBsite.

Please answer the following questions so this script can generate the files
needed by Pelican.


> Where do you want to create your new web site? [.]
> What will be the title of this web site? Vik's Blog
> Who will be the author of this web site? Vik Paruchuri
> What will be the default language of this web site? [en]
> Do you want to specify a URL prefix? e.g., http://example.com   (Y/n) n
> Do you want to enable article pagination? (Y/n)
> How many articles per page do you want? [10]
> What is your time zone? [Europe/Paris] America/Los_Angeles
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n)
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n)
> Do you want to upload your website using FTP? (y/N)
> Do you want to upload your website using ssh? (y/N)
> Do you want to upload your website using Dropbox? (y/N)
> Do you want to upload your website using S3? (y/N)
> Do you want to upload your website using Rackspace Cloud Files? (y/N)
> Do you want to upload your website using GitHub Pages? (y/N)

运行完 pelican-quickstart 以后,jupyter-blog 文件夹里多了两个文件夹 contentoutput,还有一些文件,比如 pelicanconf.pypublishconf.py。下边是文件夹目录的示例:

jupyter-blog
│   output
│   content
│   .gitignore
│   develop_server.sh
│   fabfile.py
│   Makefile
│   requirements.txt
│   pelicanconf.py
│   publishconf.py

安装 Jupyter 插件

Pelican 默认不支持使用 Jupyter 写文章,所以我们需要安装一个插件来完成这项功能。我们把插件作为一个 git 子模块(git submodule)来安装,这样便于管理。如果你还没有安装 git,你可以在这里找到安装说明。当你安装完成 git 之后:

  • 运行 git init 来把当前文件夹初始化为一个 git 仓库。

  • 创建一个叫 plugins 的文件夹。

  • 运行 git submodule add git://github.com/danielfrg/pelican-ipynb.git plugins/ipynb 来添加插件。

现在应该会有一个 .gitmodules 文件和一个 plugins 文件夹:

jupyter-blog
│   output
│   content
│   plugins
│   .gitignore
│   .gitmodules
│   develop_server.sh
│   fabfile.py
│   Makefile
│   requirements.txt
│   pelicanconf.py
│   publishconf.py

为了激活插件,我们需要修改 pelicanconf.py 文件,在最下边添加几行代码:

MARKUP = ('md', 'ipynb')

PLUGIN_PATH = './plugins'
PLUGINS = ['ipynb.markup']

这几行代码告诉 Pelican 当生成 HTML 的时候激活插件。

写第一篇文章

插件安装完之后,就可以写你的第一篇文章了:

  • 创建一个 Jupyter notebook,简单写一些内容。这里有一个例子。

  • 把 notebook 文件复制到 content 文件夹。

  • 创建一个和 notebook 同名的文件,但是扩展名是 .ipynb-meta。这里有一个例子。

  • 把下边的内容添加到 ipynb-meta 文件中,但是根据你自己的文章修改相应字段:

Title: First Post
Slug: first-post
Date: 2016-06-08 20:00
CateGory: posts
Tags: python firsts
Author: Vik Paruchuri
Summary: My first post, read it to find out.

这里以上字段的解释:

  • Title——文章的标题。

  • Slug——你的文章在服务器上的路径。如果 slug 是 first-post,而且你的服务器地址是 jupyter-blog.com, 你可以在 http://www.jupyter-blog.com/first-post 这个地址找到你的文章。

  • Date——文章发布的日期。

  • Category——文章的类别——可以是任何东西。

  • Tags——文章的标签。可以随便挂标签。

  • Author——文章作者的名字。

  • Summary——文章的摘要。

每发布一篇文章,就需要复制一个 notebook 文件,并创建一个 ipynb-meta 文件

创建好 notebook 和 meta 文件后,就可以生成博客 HTML 文件了。下边是 jupyter-blog 文件夹现在的样子:

jupyter-blog
│   output
│   content
    │   first-post.ipynb
    │   first-post.ipynb-meta
│   plugins
│   .gitignore
│   .gitmodules
│   develop_server.sh
│   fabfile.py
│   Makefile
│   requirements.txt
│   pelicanconf.py
│   publishconf.py

生成 HTML

为了从文章生成 HTML,我们需要先运行 Pelican 来把 notebooks 转换为 HTML,然后运行本地服务器来查看:

  • 切换到 jupyter-blog 文件夹。

  • 运行 pelican content 来生成 HTML。

  • 切换到 output 目录。

  • 运行python -m pelican.server

  • 在浏览器里访问 localhost:8000 来预览你的博客。

在浏览器里就可以看到博客里所有文章的列表,以及具体的博客内容了。

创建 GitHub Pages

GitHub Pages 是 GitHub 的一项功能,允许你快速部署静态网站,让所有人都可以通过特定 URL 访问。为了完成它的配置,我们需要:

  • 注册一个 GitHub 帐号,如果你还没有的话。

  • 创建一个叫 username.github.io 的仓库,这里 username 是你的 GitHub 用户名。这里有更详细的说明告诉你怎么做。

  • 切换到 jupyter-blog 文件夹。

  • 运行 git remote add origin git@github.com:username/username.github.io.git 把这个仓库作为远程仓库添加到你的本地仓库,把所有的 username 参数替换为你的 GitHub 用户名。

GitHub Pages 会把 username.github.io 仓库的 master 分支下的所有 HTML 文件展示到 username.github.io 这个地址(仓库和 URL 是一样的)。

首先我们需要修改 Pelican 使得 URL 指向正确的位置:

  • publishconf.py 文件里编辑 SITEURL,把它设置为 http://username.github.iousername 还是你的GitHub用户名。

  • 运行 pelican content -s publishconf.py。当你想在本地预览你的博客的时候,运行 pelican content。在部署之前运行 pelican content -s publishconf.py。这将使用正确的配置文件进行部署。

提交文件

如果你想把 notebooks 和其他文件作为一个 GitHub Page 放在同一个仓库里,你可以使用分支。

  • 运行 git checkout dev 切换到一个叫 dev 的分支。我们不能用 master 分支来存放 notebooks,因为那个分支是用于 GitHub Pages 展示的。

  • 创建一个提交,然后和正常一样推送到 Github(使用 git add, git commit,和 git push)。

部署到 GitHub Pages

为了让 Github Pages 正常工作,我们需要把文章添加到 master 分支中。现在,HTML 内容在 output 文件夹中,但是我们需要把它放到仓库的根目录,而不是子目录。我们可以使用 ghp-import 工具来完成这项工作:

  • 运行 ghp-import output -b master,把 output 目录下的所有东西导入 master 分支。

  • 使用 git push origin master 把你的内容推送到 GitHub。

  • 尝试访问 username.github.io ——你就可以看到你的页面了!

修改博客后,只要重新运行 pelican content -s publishconf.py, ghp-importgit push,你的 GitHub Page 就会更新了。

下一步

终于搭建好了!你现在可以创作博客,然后推送到 GitHub Pages。所有人都可以通过 username.github.io 来访问你的博客(记得把 username 替换为你的 GitHub 用户名)。这给你提供了一个展示数据科学作品集的渠道。

随着文章数和读者越来越多,你可能就需要在以下方面更深入的研究一下:

  • 主题:Pelican 支持主题。在这里你可以看到很多主题,随便选一个你喜欢的用吧。

  • 自定义URL:使用 username.github.io 已经不错了,但是有时候你可能需要自定义域名。这里是自定义 GitHub Pages 域名的指南。

  • 插件:这里有一个插件列表。插件可以帮助你设置网站数据分析,实现评论等功能。

  • 推广:试着把你的文章推广到 DataTau, Twitter, Quora或者其他一些网站,可以帮助你获得更多的读者。

作者:Vik Paruchuri@Dataquest.io
译者:cystone
校对:EarlGrey
出品:PythonTG 翻译组/编程派

--结束END--

本文标题: 打造数据科学作品集:搭建一个数据科学博

本文链接: https://www.lsjlt.com/news/192197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 打造数据科学作品集:搭建一个数据科学博
    这是「打造数据科学作品集」系列文章的第二篇。如果你喜欢该系列,而且想知道下一篇文章什么时候发布,你可以订阅我们。读完本文,你将学会如何使用 Pelican 静态网站生成器,搭建一个属于自己的博客,用来展示数据科学作品。 全文大约 950...
    99+
    2023-01-31
    科学 数据 作品集
  • 一文了解数据科学Notebook
    编者按: 主要介绍什么是Notebook,Notebook在数据科学领域的应用的重要性与优势,以及数据科学家/算法团队在选择Notebook时需考虑哪些关键因素。同时,基于Notebook的筛选考量维度,对常见的Notebook进初步对...
    99+
    2023-09-12
    人工智能 Notebook 数据科学
  • 数据库审计:艺术与科学的结合,打造数据卫士
    数据库审计是一项至关重要的任务,旨在保护组织的数据免遭威胁和漏洞。它结合了艺术和科学的元素,需要深入理解数据库技术和强大的分析能力。 科学的根基: 数据库审计建立在科学的原则之上。它依赖于以下核心要素: 数据检查:通过程序化工具或手动流...
    99+
    2024-03-10
    引言:
  • 怎么在Fedora上搭建Jupyter和数据科学环境
    这篇文章主要讲解了“怎么在Fedora上搭建Jupyter和数据科学环境”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Fedora上搭建Jupyter和数据科学环境”吧!Jupyter...
    99+
    2023-06-16
  • JavaScript 和 Numpy:哪个更适合数据科学?
    JavaScript 和 Numpy:哪个更适合数据科学? 随着数据科学的兴起,越来越多的开发人员开始使用不同的编程语言来分析和处理数据。JavaScript 和 Numpy 都是常用的编程语言之一,但是它们在数据科学方面有什么区别呢?在本...
    99+
    2023-06-28
    文件 javascript numpy
  • 提高数据科学工作效率的八个Python库!
    1、OptunaOptuna 是一个开源的超参数优化框架,它可以自动为机器学习模型找到最佳超参数。最基本的(也可能是众所周知的)替代方案是 sklearn 的 GridSearchCV,它将尝试多种超参数组合并根据交叉验证选择最佳组合。Gr...
    99+
    2023-05-14
    Python 数据科学
  • ASP 操作筛选器的艺术与科学:打造精细的数据模型
    ASP 操作筛选器的艺术与科学 ASP 操作筛选器是LINQ(语言集成查询)中的一组扩展方法,用于筛选和转换 IEnumerable 类型的集合。它们提供了一种简洁且强大的方式来查询数据,而无需编写复杂的 SQL 语句或使用低级循环。 筛...
    99+
    2024-02-15
    ASP 操作筛选器 数据模型 筛选 转换 SQL LINQ
  • NumPy 和 PHP:哪个更适合数据科学家?
    数据科学家需要使用各种工具来处理和分析大量的数据。在选择工具时,他们需要考虑许多因素,例如速度、易用性、可扩展性和可靠性等。在这篇文章中,我们将比较两个常用的数据科学工具:NumPy 和 PHP,并探讨哪一个更适合数据科学家。 NumPy...
    99+
    2023-06-14
    numpy laravel bash
  • 操作系统与大数据:数据科学家的有力盟友
    操作系统为大数据处理提供坚实基础 现代操作系统经过优化,能够高效管理和存储海量数据。例如,分布式文件系统(如 Hadoop 分布式文件系统)允许数据跨多个服务器分布,确保即使在处理庞大数据集时也能获得高吞吐量和低延迟。此外,操作系统还提供...
    99+
    2024-04-02
  • 提高数据科学效率的八个Python神库!
    1、OptunaOptuna 是一个开源的超参数优化框架,它可以自动为机器学习模型找到最佳超参数。最基本的(也可能是众所周知的)替代方案是 sklearn 的 GridSearchCV,它将尝试多种超参数组合并根据交叉验证选择最佳组合。Gr...
    99+
    2023-05-14
    开源 Python 数据科学
  • Numpy和IDE,哪一个更适合你的数据科学项目?
    在进行数据科学项目的时候,我们常常需要处理大量的数据。为了更加高效地进行数据处理,我们需要使用一些工具来帮助我们完成这些任务。在这篇文章中,我们将讨论两个非常常用的工具,Numpy和IDE,这两个工具都可以帮助我们更好地完成数据科学项目。...
    99+
    2023-06-14
    异步编程 numpy ide
  • Go语言、大数据和LeetCode:如何成为一名数据科学家?
    随着现代技术的不断发展,数据科学家成为越来越受欢迎的职业。他们的主要工作是分析和解释数据,以便为企业和组织提供有关客户行为、市场趋势、业务流程等方面的见解。那么,如何成为一名数据科学家呢?本文将介绍三个关键方面:Go语言、大数据和LeetC...
    99+
    2023-09-26
    大数据 日志 leetcode
  • 数据库设计工具的艺术与科学:构建高效数据库
    科学基础 实体关系模型 (ERM):用于描述现实世界的实体、属性和关系。 归一化:消除冗余并确保数据一致性。 索引:加快数据检索速度。 关系代数:用于操作和转换数据库中的数据。 艺术元素 用户需求分析:了解用户的目标和期望。 业务规...
    99+
    2024-03-13
    数据库设计工具
  • ASP 操作筛选器:数据科学家的秘密武器
    作为一名数据科学家,您每天都在处理大量的数据。从这个数据海洋中提取有意义的见解对于为您的企业做出明智决策至关重要。然而,手动筛选和分析数据既耗时又容易出错。 这就是 ASP 操作筛选器的用武之地。ASP 操作筛选器是一种先进的工具,可让...
    99+
    2024-02-15
    ASP 操作筛选器 数据科学 数据分析 筛选条件 模式识别
  • ASP、Shell、NumPy、Unix:哪个是最适合数据科学的工具?
    数据科学是一门涉及各种工具和技术的复杂学科。在数据科学的世界里,不同的工具和技术被用来解决不同的问题。ASP、Shell、NumPy和Unix是其中一些最常用的工具。这些工具都有不同的优点和缺点,因此选择哪一个取决于您的具体需求和项目要求...
    99+
    2023-06-18
    shell numy unix
  • 西南科技大学数据库实验一(orcal19 g)2022年版
    本次实验为西南科技大学数据库实验一 《数据库应用系统综合设计》实验体系 实验一 数据定义和数据操纵设计型代码实验二 数据查询设计型代码实验三 存储过程和触发器设计型代码实验四 数据库恢复及安全...
    99+
    2023-10-27
    数据库 mysql sql
  • Python的Shell、IDE和NumPy:哪一个最适合您的数据科学项目?
    Python作为一门高级编程语言,已经成为了数据科学领域中最受欢迎的语言之一。无论是数据清洗、机器学习还是数据可视化,Python都提供了各种工具和库来帮助数据科学家们更轻松地完成工作。在Python中,有许多不同的工具可以用来开发数据科...
    99+
    2023-08-27
    shell ide numpy
  • 数据科学家在使用Python时常犯的九个错误
    最佳实践都是从错误中总结出来的,所以这里我们总结了一些遇到的最常见的错误,并提供了如何最好地解决这些错误的方法、想法和资源。1、不使用虚拟环境这本身不是编码问题,但我仍然认为每种类型的项目进行环境的隔离是一个非常好的实践。为什么要为每个项目...
    99+
    2023-05-14
    Python 编码 软件工程
  • 【Python数据科学快速入门系列 | 06】Matplotlib数据可视化基础入门(一)
    这是机器未来的第52篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/126899226 《Python数据科学快速...
    99+
    2023-09-11
    python matplotlib numpy 数据可视化 数据科学
  • 为什么Go框架与NumPy打包是数据科学家的最爱?
    随着数据科学领域的不断发展,数据科学家们需要越来越多的工具来处理和分析数据。在这些工具中,Go框架和NumPy打包已经成为了数据科学家的最爱。这篇文章将会解释为什么这些工具在数据科学领域中变得如此重要,并且给出一些演示代码来说明它们的强大之...
    99+
    2023-09-20
    框架 numpy 打包
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作