wordpress开发文档

如何利用机器学习和Gatsby.js创建假新闻网站

我们对错误消息并不陌生。假新闻和假标题并不是现代发明。甚至早在20世纪初就有了黄色新闻,它只是使用各种道德上有问题的策略来吸引人们购买报纸和其他媒体形式的注意力。在没有报纸订阅的情况下,公司必须为每一笔销售而战,而当你最好的营销方式是招牌和报童时,就需要通过新闻标题迅速形成强烈的印象。随之而来的是大量过度夸张的标题和缺乏研究的文章。听起来是不是很熟悉?

我们生活在一个真理不再是非黑即白的世界。在我们生活的世界里,媒体明白,影响人们的最佳方式不是通过逻辑,而是通过情感。他们明白我们人类不是通过有意识的思考和逻辑处理来做决定,而是通过隐藏在我们心灵中的无意识倾向来做决定。对通过媒体赚钱的人来说是好事,对像我们这样消费媒体的人来说是坏事。

今天,机器学习变得越来越突出,领域越来越进步,特别是自然语言处理,任何人都可以生成虚假内容,而不需要写一个句子。电脑为我们做了所有的事情!我决定做一个小实验,看看一个完全由电脑生成内容的新闻网站(比如华尔街日报)会是什么样子。

这是成品的样子。

我知道它很乏味。更重要的是,它的功能非常强大,外观很容易调整。并且随意在这个项目上添加你想要的任何内容。

目录

1. Gatsby.js设置

1. 配置

1. 页面布局

1. 机器学习设置与谷歌Colab

1. 假文章代

1. Google Drive API

1. 编程式页面生成

1. 部署

1. 改进的领域

· 如果您想要更深入地了解这个项目,或者想要添加到代码中,请查看最后的GitHub

Gatsby.js

为了构建一个可以无限扩展且加载速度非常快的博客,我们需要一个能够构建和渲染静态资源的框架,这些静态资源可以很容易地部署在web服务器上。Gatsby.js (可以说)是目前最好的开源静态站点生成器,所以让我们来看看它。

Gatsby.js是一个基于response .js的用于生成静态网站的开源框架。Gatsby.js是一个web应用程序生成器。该框架使用一些web资源,如HTML、CSS和JavaScript,通过各种api加载数据,然后将所有这些资源加载到带有预抓取资源的站点中。最终的结果是,您拥有了一个非常快速、易于伸缩和修改、非常安全的web资源的集合。

在Gatsby.js之前,首先需要安装Node。这是一个开源的JavaScript运行时环境,用于在浏览器之外执行JavaScript代码。使用Node还可以得到npm,它表示"包管理器"。使用npm,您可以将Gatsby.js安装到本地机器上。

接下来最好安装git,这是一种非常强大且流行的版本控制系统。当您使用Gatsby.js站点模板时,Gatsby会使用Git的一些功能。基本上,Gatsby.js将帮你创建一个有完整的骨架的网站,你可以调整和重新配置,而不是从头开始构建整个东西。

在安装完成nodejs以后,使用以下命令:

npm install -g gatsby-cli

在Gatsby CLI中有相当数量的命令,可以通过下面的命令行提示符了解更多关于它们的信息:

gatsby --help

对于这个特定的项目,您有多种选择。

(1)使用gatsby new [yoursite -name]完全从头开始,

(2)使用gatsby new [yoursite -name] [starter-git-url]的启动模板,

(3)使用我发布在GitHub上的现成代码

在本地机器上拥有站点文件和静态文件之后,就可以使用gatsby develop的本地开发服务器进行开发。

网站配置

现在我们已经设置了Gatsby站点,并预先打包了基本的静态web资源后,在实际添加内容之前,我们应该了解站点的基本组件并正确配置它们。

当你设置一个Gatsby网站时,你会得到一堆文件。所有这些资产帮助您创建更好的网络体验与更少的麻烦。让我们逐个介绍。

gatsby-browser.js

此文件用于实现Gatsby浏览器api。对于这个项目,我们不需要在这个文件中放入任何东西。

gatsby-config.js

这个文件是网站的基本配置。它是大多数API设置将被存储的地方。Gatsby附带了许多插件,您可以通过运行在终端npm install中轻松地安装它们。下载插件后,可以将其添加到gatsby-config.js中。

下面是这个项目的文件。

如你所见,在这个项目中使用了许多不同的插件,这些插件可以帮助我们节省时间和精力。一个重要的插件是Gatsby -source-filesystem,它允许Gatsby从存储在本地文件系统中的文件中提取数据。稍后,我们将使用Git从GitHub中提取必要的文件,这样本地文件系统中的所有文件都能与云服务器中的资源相匹配,并且可以进行自动部署。gatsby-transformer-sharp和gatsby-transformer-remark也是重要的插件。它们可以自动将markdown 文件转换为可用于web格式。其他的插件不太重要,就不介绍了。

gatsby-node.js

此文件用于实现api。这些api可以使用GraphQL从数据层中获取数据。在处理程序化页面生成时,我们将更深入地研究这个文件的内容。

gatsby-ssr.js

此文件用于实现服务器端选然的api。我们不会在这个项目中使用。

布局设置

网站布局是一个非常重要的方面。Gatsby构建在React之上,而React是一个JavaScript库,它使使用称为"组件"的构建块构建用户界面变得更加容易。你不必把你所有的代码放在一个文件中,你可以把你的网站分解成基本的构建块,然后把它们堆叠在一起,在你需要的时候重用各种组件。

首页代码

import React from 'react'import { Link, graphql } from 'gatsby'import Masonry from 'react-masonry-component'import Img from 'gatsby-image'import Work_Layout from "../components/work_layout"const MainPage = ({ data }) => { return ( <Work_Layout> <Masonry className="showcase"> {data.allMarkdownRemark.edges.map(({ node: work }) => ( <div key={work.id} className="showcase__item"> <figure className="card"> <Link to={`${work.fields.slug}`} className="card__image"> </Link> <figcaption className="card__caption"> <h6 className="card__title"> <Link to={`${work.fields.slug}`}>{work.fields.title}</Link> </h6> <div className="card__description"> <p>{work.excerpt}</p> </div> </figcaption> </figure> </div> ))} </Masonry> </Work_Layout> )}export default MainPageexport const query = graphql` query { allMarkdownRemark { edges { node { id fields { slug title } excerpt html } } } }

Masonry 组件将每个文章变为一个卡片,并允许卡片根据屏幕的打叫进行重排,方便移动端和不同的分辨率使用

布局组件看起来像这样。

import React from 'react';import "../styles/index.sass";import Helmet from './helmet';import Footer from './footer';import Navbar from './navbar';const Work_Layout = ({ children }) => ( <div> <Helmet /> <Navbar /> {children} <Footer /> </div>);export default Work_Layout;

可以看到,这就是主页面的WorkLayout组件的来源。{children}引用您放在父组件(即WorkLayout)中的所有组件。本例中的直接子组件是Masonry 组件。

深入每个组件将花费太长时间。所有组件代码都在GitHub存储库中。

机器学习设置和谷歌Colab

现在我们的网站布局和结构已经建立,是时候真正生成我们的假新闻文章了。我使用谷歌Colaboratory,它可以在浏览器中运行Python代码并可以直接访问谷歌Driver。

首先,我需要配置我的谷歌Drive,这样我可以把文章保存到谷歌Drive中。

接下来,我们将建立运行文本生成的参数。很明显,你不必和我做同样的事情。我选择了模仿《华尔街日报》的写作风格,对于你想模仿的风格,你有很多选择。(我们以前发布过模仿莎士比亚风格写作的教程,有兴趣的可以查看)

# Fake person who will be slandered/libeled in the fake articlesNAME_TO_SLANDER = "Chucky McChuckster"IMAGE_TO_SLANDER = ":fit:512:512/Z3M6Ly9nZW5lcmF0/ZWQtcGhvdG9zL3Ry/YW5zcGFyZW50X3Yz/L3YzXzAzNDM3MDcu/cG5n.png"SLANDEROUS_SEED_HEADLINES = [ f"{NAME_TO_SLANDER} convicted of stealing puppies", f"{NAME_TO_SLANDER} caught lying about growing the world's largest watermelon", f"{NAME_TO_SLANDER} single-handedly started the Cold War", f"{NAME_TO_SLANDER} forged priceless works of modern art for decades", f"{NAME_TO_SLANDER} claimed to be Pokemon master, but caught in a lie", f"{NAME_TO_SLANDER} bought fake twitter followers to pretend to be a celebrity", f"{NAME_TO_SLANDER} created the original design for Ultron", f"{NAME_TO_SLANDER} revealed as a foriegn spy for the undersea city of Atlantis", f"{NAME_TO_SLANDER} involved in blackmail scandal with King Trident of Atlantis", f"{NAME_TO_SLANDER} is dumb", f"{NAME_TO_SLANDER} lied on tax returns to cover up past life as a Ninja Turtle", f"{NAME_TO_SLANDER} stole billions from investors in a new pet store", f"{NAME_TO_SLANDER} claims to be a Ninja Turtle but was actually lying", f"{NAME_TO_SLANDER} likely to be sentenced to 20 years in jail for chasing a cat into a tree", f"{NAME_TO_SLANDER} caught in the act of illegal trafficking of Teletubbies", f"{NAME_TO_SLANDER} commits a multitude of crimes against dinosaurs",]# Which news website to 'clone'DOMAIN_STYLE_TO_COPY = ""RSS_FEEDS_OF_REAL_STORIES_TO_EMULATE = [ "",]

Grover是一个深度学习模型,它实际上是用来抵御假新闻的。在区分人工生成的新闻和机器生成的新闻方面,它的准确率超过90%。这也意味着,该模式本身就擅长制造假新闻。我们可以在Colab中克隆存储它的存储库并使用它。

我们需要将Grover模型文件下载到Colab文件夹中。幸运的是,Python有一些直接读写文件的简单函数。

import osimport requestsmodel_type = "mega"model_dir = os.path.join('/content/grover/models', model_type)if not os.path.exists(model_dir): os.makedirs(model_dir)for ext in ['data-00000-of-00001', 'index', 'meta']: r = requests.get(f'{model_type}/model.ckpt.{ext}', stream=True) with open(os.path.join(model_dir, f'model.ckpt.{ext}'), 'wb') as f: file_size = int(r.headers["content-length"]) if file_size < 1000: raise ValueError("File doesn't exist? idk") chunk_size = 1000 for chunk in r.iter_content(chunk_size=chunk_size): f.write(chunk) print(f"Just downloaded {model_type}/model.ckpt.{ext}!", flush=True)

下面的代码可能会非常复杂。主要的一点是,我们使用前面设置的参数,添加一些可以填充的属性,使用自然语言处理使文本更易于模型处理,然后使用Grover模型生成文章。最终的结果是一组由html组成的文章,我选择将其保存为markdown。

%tensorflow_version 1.ximport tensorflow as tfimport numpy as npimport sysimport feedparserimport timefrom datetime import datetime, timedeltaimport requestsimport base64from ttp import ttpsys.path.append('../')from lm.modeling import GroverConfig, samplefrom sample.encoder import get_encoder, _tokenize_article_pieces, extract_generated_targetimport randomdef get_fake_articles(domain): articles = [] headlines_to_inject = SLANDEROUS_SEED_HEADLINES for fake_headline in headlines_to_inject: days_ago = random.randint(1, 7) pub_datetime = datetime.now() - timedelta(days=days_ago) publish_date = pub_datetime.strftime('%m-%d-%Y') iso_date = pub_datetime.isoformat() articles.append({ 'summary': "", 'title': fake_headline, 'text': '', 'authors': ["Staff Writer"], 'publish_date': publish_date, 'iso_date': iso_date, 'domain': domain, 'image_url': IMAGE_TO_SLANDER, 'tags': ['Breaking News', 'Investigations', 'Criminal Profiles'], }) return articlesdef get_articles_from_real_blog(domain, feed_url): feed_data = feedparser.parse(feed_url) articles = [] for post in feed_data.entries: if 'published_parsed' in post: publish_date = time.strftime('%m-%d-%Y', post.published_parsed) iso_date = datetime(*post.published_parsed[:6]).isoformat() else: publish_date = time.strftime('%m-%d-%Y') iso_date = datetime.now().isoformat() if 'summary' in post: summary = post.summary else: summary = None tags = [] if 'tags' in post: tags = [tag['term'] for tag in post['tags']] if summary is None: summary = ", ".join(tags) image_url = None if 'media_content' in post: images = post.media_content if len(images) > 0 and 'url' in images[0]: image_url = images[0]['url'] # Hack for NYT images to fix tiny images in the RSS feed if "-moth" in image_url: image_url = image_url.replace("-moth", "-threeByTwoMediumAt2X") if 'authors' in post: authors = list(map(lambda x: x["name"], post.authors)) else: authors = ["Staff Writer"] articles.append({ 'summary': summary, 'title': post.title, 'text': '', 'authors': authors, 'publish_date': publish_date, 'iso_date': iso_date, 'domain': domain, 'image_url': image_url, 'tags': tags, }) return articlesdef format_generated_body_text_as_html(article_text, image_url=None): p = ttp.Parser() result = p.parse(article_text) article_text = result.html lines = article_text.split("\n") new_lines = [] for line in lines: if len(line) < 80 and not "." in line: line = f"<b>{line}</b>" new_lines.append(line) article_text = "<p>".join(new_lines) if image_url is not None: article_text = f"<img src='{image_url}'><p>{article_text}" return article_textdef generate_article_attribute(sess, encoder, tokens, probs, article, target='article'): # Tokenize the raw article text article_pieces = _tokenize_article_pieces(encoder, article) # Grab the article elements the model careas about - domain, date, title, etc. context_formatted = [] for key in ['domain', 'date', 'authors', 'title', 'article']: if key != target: context_formatted.extend(article_pieces.pop(key, [])) # Start formatting the tokens in the way the model expects them, starting with # which article attribute we want to generate. context_formatted.append(encoder.__dict__['begin_{}'.format(target)]) # Tell the model which special tokens (such as the end token) aren't part of the text ignore_ids_np = np.array(encoder.special_tokens_onehot) ignore_ids_np[encoder.__dict__['end_{}'.format(target)]] = 0 # We are only going to generate one article attribute with a fixed # top_ps cut-off of 95%. This simple example isn't processing in batches. gens = [] article['top_ps'] = [0.95] # Run the input through the TensorFlow model and grab the generated output tokens_out, probs_out = sess.run( [tokens, probs], feed_dict={ # Pass real values for the inputs that the # model needs to be able to run. initial_context: [context_formatted], eos_token: encoder.__dict__['end_{}'.format(target)], ignore_ids: ignore_ids_np, p_for_topp: np.array([0.95]), } ) # The model is done! Grab the results it generated and format the results into normal text. for t_i, p_i in zip(tokens_out, probs_out): extraction = extract_generated_target(output_tokens=t_i, encoder=encoder, target=target) gens.append(extraction['extraction']) # Return the generated text. return gens[-1]

我们在前面定义了函数,现在我们所需要做的就是运行所有的东西来一次生成所有的文章。[警告:此过程将花费很长时间]

一些虚假的文章将完全从我们之前创建的假标题中生成,一些将从《华尔街日报》网站上刮下来,并使用我们的参数进行调整。

# Ready to start grabbing RSS feedsdomain = DOMAIN_STYLE_TO_COPYfeed_urls = RSS_FEEDS_OF_REAL_STORIES_TO_EMULATEarticles = []# Get the read headlines to look more realisticfor feed_url in feed_urls: articles += get_articles_from_real_blog(domain, feed_url)# Toss in the slanderous articlesarticles += get_fake_articles(domain)# Randomize the order the articles are generatedrandom.shuffle(articles)# Load the pre-trained "huge" Grover model with 1.5 billion paramsmodel_config_fn = '/content/grover/lm/configs/mega.json'model_ckpt = '/content/grover/models/mega/model.ckpt'encoder = get_encoder()news_config = GroverConfig.from_json_file(model_config_fn)# Set up TensorFlow session to make predictionstf_config = tf.ConfigProto(allow_soft_placement=True)with tf.Session(config=tf_config, graph=tf.Graph()) as sess: # Create the placehodler TensorFlow input variables needed to feed data to Grover model # to make new predictions. initial_context = tf.placeholder(tf.int32, [1, None]) p_for_topp = tf.placeholder(tf.float32, [1]) eos_token = tf.placeholder(tf.int32, []) ignore_ids = tf.placeholder(tf.bool, [news_config.vocab_size]) # Load the model config to get it set up to match the pre-trained model weights tokens, probs = sample( news_config=news_config, initial_context=initial_context, eos_token=eos_token, ignore_ids=ignore_ids, p_for_topp=p_for_topp, do_topk=False ) # Restore the pre-trained Grover 'huge' model weights saver = tf.train.Saver() saver.restore(sess, model_ckpt) # START MAKING SOME FAKE NEWS!! # Loop through each headline we scraped from an RSS feed or made up for article in articles: print(f"Building article from headline '{article['title']}'") # If the headline is one we made up about a specific person, it needs special handling if NAME_TO_SLANDER in article['title']: # The first generated article may go off on a tangent and not include the target name. # In that case, re-generate the article until it at least talks about our target person attempts = 0 while NAME_TO_SLANDER not in article['text']: # Generate article body given the context of the real blog title article['text'] = generate_article_attribute(sess, encoder, tokens, probs, article, target="article") # If the Grover model never manages to generate a good article about the target victim, # give up after 10 tries so we don't get stuck in an infinite loop attempts += 1 if attempts > 5: continue # If the headline was scraped from an RSS feed, we can just blindly generate an article else: article['text'] = generate_article_attribute(sess, encoder, tokens, probs, article, target="article") # Now, generate a fake headline that better fits the generated article body # This replaces the real headline so none of the original article content remains article['title'] = generate_article_attribute(sess, encoder, tokens, probs, article, target="title") # Grab generated text results so we can post them to WordPress article_title = article['title'] article_text = article['text'] article_date = article["iso_date"] article_image_url = article["image_url"] article_tags = article['tags'] # Make the article body look more realistic - add spacing, link Twitter handles and hashtags, etc. # You could add more advanced pre-processing here if you wanted. article_text = format_generated_body_text_as_html(article_text, article_image_url) print(f" - Generated fake article titled '{article_title}'") filename = '/content/gdrive/My Drive/Articles/' + f"{article_title}.md" with open(filename, 'w' ) as f: f.write(article_text)

这么一大堆代码!理想情况下,运行它时不会出现任何故障。如果查看gen.py的底部,将看到我在path /content/gdrive/My Drive/ articles /中编写了文章。这是我为自己设置的配置,所以它可能与其他人不同。

下面是运行代码时应该看到的内容。

当我查看驱动器上的文章文件夹时,我会看到一堆包含假文章的markdown 文件。

我们可以使用名为Gatsby -source-drive的插件将文件直接导入到Gatsby的本地文件系统中。这需要在谷歌api中设置一个服务帐户。然后需要将其添加到gatsby-config.js中,并从谷歌驱动器文件夹中获得唯一的ID。这个API的好处在于它保存并缓存了谷歌驱动器文件夹的内容,所以即使您的驱动器发生了什么事情,文件还是安全的。

编程式页面生成

我们已经使用谷歌Colab生成了文章,并且使用gatsby-source-drive插件将文件直接归档到我们的本地文件系统中。现在我们需要使用markdown文件以编程方式生成网页。

同样,确保您的gatsby-config.js文件包含 gatsby-source-filesystem和gatsby-transformer-remark。这些对于页面生成非常重要。

创建页面的两个大步骤是:

1)为本地文件系统中的每个标记文件创建slugs(或唯一的url)

2)使用页面模板使用slugs和通过GraphQL获取的其他信息创建实际的web页面。

我们需要创建的两个文件如下

gatsby-node.js

const path = require(`path`)const { createFilePath } = require(`gatsby-source-filesystem`)exports.onCreateNode = ({ node, getNode, actions }) => { const { createNodeField } = actions if (node.internal.type === 'MarkdownRemark') { const slug = createFilePath({ node, getNode, basePath: 'pages' }) createNodeField({ node, name: 'slug', value: slug, }) createNodeField({ node, name: 'title', value: slug.replace(/\//g, " ") }) }}exports.createPages = async ({ graphql, actions }) => { const { createPage } = actions const result = await graphql(` query { allMarkdownRemark { edges { node { fields { slug } } } } } `) result.data.allMarkdownRemark.edges.map(({ node }) => { createPage({ path: node.fields.slug, component: path.resolve('./src/templates/work.js'), context: { slug: node.fields.slug, }, }) })}

在gatsby-node.js中,为每个markdown文件创建数据节点,然后所有这些节点将与页面模板一起使用,以创建实际的页面。

页面模板代码如下:

import React from 'react'import Slider from 'react-slick'import Img from 'gatsby-image'import { graphql } from 'gatsby'import Layout from "../components/layout"export default ({ data }) => { return ( <Layout> <article className="sheet"> <div className="sheet__inner"> <h1 className="sheet__title">{data.markdownRemark.fields.title}</h1> <p className="sheet__lead">{data.markdownRemark.excerpt}</p> <div className="sheet__body" dangerouslySetInnerHTML={{ __html: data.markdownRemark.html, }} /> </div> </article> </Layout> )}export const query = graphql` query($slug: String!) { markdownRemark(fields: { slug: { eq: $slug } }) { fields { slug title } html id excerpt } }`

当您运行gatsby develop或gatsby build时,代码就会自动生成所有内容!

部署

让我们使用Netlify将我们的站点部署到互联网上。Netlify是一个建立和部署网站的平台。它将你的本地资源存储在云上以便部署。

我们现在需要做的是更新GitHub库。我们需要将文件添加到Git上的本地暂存区域,提交这些文件,然后将它们推到GitHub上的远程存储库。

git add .git commit -m "[whatever changes you made]"git push -u origin master

一旦你的GitHub库被更新,我们就可以设置一个直接从GitHub部署的Netlify站点。

可以改进的领域

美化网站,使其看起来更像新闻网站

多样化假文章生成的参数

为网站增加更多的交互性

为文章添加更多元数据

总结

感谢您花时间阅读本文!GitHub在这里:jerrytigerxu

如果你想创建莎士比亚风格的新闻,可以看我们以前的文章

深度学习实战:tensorflow训练循环神经网络模仿莎士比亚风格创作

我们这里也列出了一些检测假新闻的文章

检测假新闻:比较不同的分类方法的准确率

为了应对假新闻,我创建了一个通过深度学习标记假新闻的开源项目

作者:Jere Xu

deephub翻译组

我们为你精选了一份Jupyter/IPython笔记本集合 !(附链接)-上篇

作者:Hans Fangohr翻译:顾宇华本文约12000字,建议阅读45+分钟。

本文介绍了一些有趣的Jupyter/IPython笔记本。

目录

1. 针对某个主题的书籍或其他笔记本大集合

入门教程编程与计算机科学统计学,机器学习和数据科学数学,物理,化学,生物学地球科学和地理空间数据语言学与文本挖掘信号处理工程教育

2. 使用SciPy Stack进行科学计算和数据分析

科学计算的一般主题社交数据心理学和神经科学机器学习,统计和概率物理,化学和生物学经济与金融地球科学和地理空间数据数据可视化和绘图数学信号,声音和图像处理自然语言处理用于数据分析的Pandas

3. 一般Python编程

4. 除Python以外的其他语言的笔记本

JuliaHaskellRubyPerlF#C#Javascript

5. 使用笔记本本身做不同事情的各种各样的主题

6. 可重现的学术出版物

7. 数据为主的新闻

8. 异想天开的笔记本

9. 在自然环境下被使用的IPython视频

10. 通过笔记本访问IBM量子计算机

注:3—4在中篇,5—10在下篇。

1. 针对某个主题的整本书籍或其他笔记本大集合

入门教程

首先,如何在笔记本中运行代码。这里面还有IPython 的一系列笔记本合集。这个系列中关于丰富的显示系统的解释也十分有用。

在笔记本中运行代码

%20Code.ipynb

一个很棒的matplotlib教程,是JR Johansson 使用Python进行科学计算的精彩讲座的一部分。

matplotlib教程

使用Python进行科学计算

C. Rossant 的IPython迷你书的代码,介绍了用于交互式计算和数据可视化的IPython,NumPy,SciPy,Pandas和matplotlib。

IPython迷你书

由Rajath Kumar MP撰写的《Python指南》(Python Tutorial)。

《Python指南》

编程与计算机科学

使用Jupyter的自动机和可计算性,整个课程是基于Taylor和Francis即将出版的书; 书名:“Automata and Computability:Programmer's Perspective”,作者:Ganesh Gopalakrishnan,盐湖城犹他大学计算机学院教授。[英文书,有Youtube视频]

使用Jupyter的自动机和可计算性

编程简介(使用Python)(Introduction to Programming (using Python)),这是由Eric Matthes编写的完整的Python入门课程。这篇文章介绍了Eric任职的阿拉斯加高中的教育背景。

编程简介(使用Python)(Introduction to Programming (using Python))

Eric Matthes

这篇文章

数字计算很有趣。创建这一系列笔记本旨在帮助教育有抱负的计算机程序员和所有年龄段的没有编程经验的数据科学家。

数字计算很有趣

《Python for Developers》,Ricardo Duarte编写的一本关于Python编程的完整书籍。此书籍也包含葡萄牙语版本。

《Python for Developers》

Ricardo Duarte

葡萄牙语版本

CS1001.py - 计算机科学概论。特拉维夫大学的计算机科学入门课程,由Yoav Ram组组合为IPython笔记本。

CS1001.py - 计算机科学概论

Yoav Ram

使用Python进行探索性计算,这是一套涵盖探索性计算,数据分析和可视化的15本笔记本。无需编程经验。每个笔记本包含一些练习(带答案),所需时间不到4小时。由Mark Bakker为代尔夫特理工大学的本科工程专业学生开发。

使用Python进行探索性计算

了解进化策略和协方差矩阵适应,来自Luis Martí的高级进化计算的理论与实践课程。

了解进化策略和协方差矩阵适应

%20-%20Evolutionary%20Strategies%20and%20Covariance%20Matrix%20Adaptation.ipynb

高级进化计算的理论与实践课程

用Python编写Katas,包括搜索和排序算法,堆栈,队列,链表,图形,回溯和贪婪问题的算法和数据结构练习的集合。

用Python编写Katas

在剑桥大学工程学院的计算机课程(Michaelmas Term)Part IA的Jupyter笔记本活动,Garth Wells。

在剑桥大学工程学院的计算机课程(Michaelmas Term)Part IA的Jupyter笔记本活动

《用于计算科学与工程的Python简介(Hans Fangohr)》:初学者教材,每章分为一个Jupyter笔记本。可以使用Binder在线执行和交互。

《用于计算科学与工程的Python简介(Hans Fangohr)》

在线执行和交互

?filepath=index.ipynb

统计学,机器学习和数据科学

由Leif Rune Hellevik,Vinzenz Eck和Jacob T. Sturdy 为心血管建模的不确定性量化和灵敏度分析研讨会开发的关于不确定性量化和灵敏度分析的介绍性笔记本。

心血管建模的不确定性量化和灵敏度分析研讨会

不确定性量化和灵敏度分析的介绍性笔记本

Python数据科学手册补充材料,由Jake VanderPlas撰写的配合书本教学内容的笔记本集合。

Python数据科学手册补充材料

“ISP”:Introduction to Statistics with Python,一个笔记本合集,配合由Thomas Haslwanter的同名书。

“ISP”:Introduction to Statistics with Python

John Wittenauer 的,关于Andrew Ng的在线ML课程,Spark和TensorFlow的练习笔记本,以及来自scipy堆栈的其他工具的额外材料。

关于Andrew Ng的在线ML课程,Spark和TensorFlow的练习笔记本

AM207:蒙特卡罗方法,随机优化:来自哈佛大学的Verena Kaynig-Fittkau和Pavlos Protopapas的完整课程,所有讲座材料和家庭作业都被整合为笔记本。

AM207:蒙特卡罗方法,随机优化

贝叶斯推理的介绍,这只是由Cameron Davidson-Pilon正在撰写的书的第一章:使用为黑客设计的Python和PyMC概率编程和贝叶斯方法(Probabilistic Programming and Bayesian Methods for Hackers Using Python and PyMC)。

贝叶斯推理的介绍

贝叶斯数据分析:用于选择模型和图形的Python / PyMC3代码,来自John Kruschke(2015)出版的“做贝叶斯数据分析:R,JAGS和Stan的教程”第二版。

贝叶斯数据分析

学习数据科学,这是Nitin Borwankar的完全自学课程。

学习数据科学

Cyrille Rossant的IPython Cookbook,Python数据科学综合指南。GitHub存储库中提供了100个代码。

GitHub存储库

Hannes Schulz和Andreas Mueller 的介绍使用Python和scikit-learn(repo和overview)的机器学习。

介绍使用Python和scikit-learn(repo和overview)的机器学习

%20-%20KMeans.ipynb

都灵大学机器学习课程的进阶笔记本合集(附练习)。

都灵大学机器学习课程的进阶笔记本合集(附练习)

聚类和回归,是Michael Franklin教授的加州大学伯克利分校2014年数据科学入门课程的一部分。

聚类和回归

据科学入门课程

神经网络,是Aaron Masino 机器学习系列的一部分。

神经网络

Pandas介绍,由HernánRojas撰写的关于Pandas的11节课教程的一部分。

撰写的关于Pandas的11节课

Steve Phelps的使用Python的数据科学和大数据。

使用Python的数据科学和大数据

该Statsmodels项目有两个优秀的的例子集合:在他们的官方文档和wiki中另一个文档中。那里有太多要直接复制的内容,但它们提供了有关Python统计建模的优秀学习资料。

Statsmodels

官方文档

使用Shogun工具箱进行机器学习。这是一个完整的服务,包括一个可立即运行的包含一系列笔记本的IPython实例,说明了Shogun工具箱的使用。只需登录并开始运行示例。

Shogun

Python for Data Analysis,来自CU Boulder Research Computing Group的入门系列。

Python for Data Analysis

CU Boulder Research Computing Group

Kaggle bulldozers竞赛示例,由Daniel Rodríguez开发的使用copper toolkit的探索性数据分析教程之一。

理解模型可靠性,是Michael Waskom 的为心理学家进行统计和数据分析的完整课程的一部分。

理解模型可靠性

线性模型的图形表示,Seaborn统计可视化库的图示,还包括可视化数据分布和表示时间序列图中的可变性。由Micheal·Waskom撰写。

Desperately Seeking Silver,哈佛大学CS 109数据科学课程的家庭作业之一。

Desperately Seeking Silver

James,Witten,Hastie,Tibshirani(2013)的经典的“R的应用程序的统计学习简介”中,除了本书的默认R示例之外,还有一本笔记本。一个由Jordi Warmenhoven撰写,另一个由Matt Caudill撰写。

“R的应用程序的统计学习简介”

~gareth/ISL/

StatLearning练习的Python笔记本,用于StatLearning的R实验室的Python实现:来自斯坦福大学的统计学习在线课程,由Trevor Hastie教授和Rob Tibshirani教授。

StatLearning练习的Python笔记本

使用Python的应用预测建模,来自Max Kuhn和Kjell Johnson 着名的入门书籍Applied Predictive Modeling的 Python实例(最初用R编写)。

使用Python的应用预测建模

来自哥伦比亚大学Lede计划的多个教师的数据科学,算法和数据库基础的四门课程合集。

计划的多个教师的数据科学,算法和数据库基础的四门课程

SciPy和OpenCV作为计算机视觉的交互式计算环境,由Thiago Santos提供,这是一个在2014年SIBGRAPI上发布的教程。

SciPy和OpenCV作为计算机视觉的交互式计算环境

Python的卡尔曼和贝叶斯过滤器,由Roger Labbe提供。

Python的卡尔曼和贝叶斯过滤器

由Shashwat Shukla提供的 进行数字分类的Adaboost。在Python中完整实现Adaboost,带有数字识别代码。

进行数字分类的Adaboost

%20note.ipynb

一个机器学习笔记本,由Randal. S. Olson提供,是数据分析和机器学习系列的一部分。

一个机器学习笔记本

%20Machine%20Learning%20Notebook.ipynb

Pandas .head() to .tail(),由Tom Augspurger撰写的关于Pandas的深度教程。

Apache SINGA教程。使用SINGA进行深度学习的Python教程。

Apache SINGA教程

数据科学笔记本,由Donne Martin经常更新的统计推断,数据分析,可视化和机器学习笔记本。

数据科学笔记本

ETL with Python,ETL(Extract,Transfer和Load)教程,使用python petl包,加载到MySQL并使用csv文件,由Dima Goldenberg提供。

ETL with Python

数学,物理,化学,生物学

单原子激光模型。这是使用JR Johansson的使用QuTiP的关于量子力学和量子光学的完整讲座之一。

单原子激光模型

二维刚体转换。这是生物力学和电机控制中的科学计算的一部分,这是由Marcos Duarte撰写的完整的笔记本系列。

二维刚体转换

使用yt的天体物理模拟和分析:使用各种与yt的接口代码的示例笔记本集合:Enzo,Gadget,RAMSES,PKDGrav和Gasoline。注意:yt抛出了一个ssl警告,似乎是由于一个过期的或自签名的认证。

Working with Reactions,rdkit项目的一系列关于化学信息学和机器学习的教程的一部分,由Greg Landrum提供。

Working with Reactions

CFD Python:Navier-Stokes的12个步骤。Lorena Barba的一套完整的计算流体动力学讲座,从一维线性波到完整的二维Navier-Stokes 。

CFD Python:Navier-Stokes的12个步骤

Pytherm - 应用热力学。ATOMS使用Python和SciPy生态系统讲授的应用热力学。

Pytherm - 应用热力学

AeroPython:使用Python进行空气动力学 - 流体动力学,这是由乔治华盛顿大学Lorena Barba教授的完整课程。

AeroPython:使用Python进行空气动力学 - 流体动力学

Python实用数值方法,一系列学习模型(每个由几本IPython笔记本组成),用于由乔治华盛顿大学Lorena Barba教授的数值微分方程课程。还在GW SEAS Open edX平台上提供“大规模,开放式在线课程”(MOOC)。

Python实用数值方法

pyuvvis:用于探索光谱学的工具,用于集成ipython笔记本,matplotlib和pandas的光谱库。

pyuvvis:用于探索光谱学的工具

HyperPython:双曲线守恒定律解决方案的实用介绍,David Ketcheson的课程。

HyperPython:双曲线守恒定律解决方案的实用介绍

应用生物信息学概论:生物信息学的互动课程,由Greg Caporaso撰写。

应用生物信息学概论

颜色科学计算与颜色,一个Python包实现的支持的色彩理论转换和算法的IPython的笔记本专用的合集。更多与颜色科学相关的IPython笔记本可在colour-science.org上找到。

IPython的笔记本

来自Book Bioinformatics with Python Cookbook的笔记本,涵盖了下一代测序,群体遗传学,系统发育学,基因组学,蛋白质组学和地理参考信息等几个领域。

学习群体RNA世界中的遗传学是一种交互式笔记本,通过构建RNA分子的计算机进化模型来解释基本的群体遗传学工具和技术。

学习群体RNA世界中的遗传学

一个开放的RNA-Seq数据分析管道教程,其中有一个例子,用于重新处理最近的Zika病毒研究数据。这款笔记本完全再现了本文发表的研究成果。该笔记本主要使用python但包括一些bash和R,并且与生物信息学和公共卫生领域的研究人员相关。

一个开放的RNA-Seq数据分析管道教程

本文

肺癌翻译后修饰和基因表达调控。这个Python笔记本使用Jupyter-widget Clustergrammer-Widget作为交互式热图来显示来自37个肺癌细胞系的基因表达和翻译后修饰数据的层次聚类。笔记本是本文研究项目的一部分。

肺癌翻译后修饰和基因表达调控

?flush_cache=true

Python中使用pymatgen的材料科学。一系列关于材料科学的python笔记本使用pymatgen包和材料项目 API。

Python中使用pymatgen的材料科学

地球科学和地理空间数据

EarthPy,一系列关于地球科学的IPython笔记本,从鲸鱼轨道到亚马逊流。

EarthPy

Python for Geosciences是一个针对地球科学界的教程系列,由Nikolay Koldunov撰写。

Python for Geosciences

查看纽约地铁入口附近的涂鸦,这是关于大量数据分析的丰富笔记本之一的笔记本,由Roy Hyunjin Han撰写。

大量数据分析的丰富笔记本

Logistic models of well switching in Bangladesh,它是关于机器学习和Python数据分析的“Will it Python”博客系列的一部分。作者:Carl Vogel。

Logistic models of well switching in Bangladesh

估计在大陆低角度正常断层上观测大地震的可能性以及对低角度正常断层活动的影响,Richard Styron和Eric Hetland在地球物理研究快报上发表的关于地震概率的论文的可执行版本。

估计在大陆低角度正常断层上观测大地震的可能性以及对低角度正常断层活动的影响

python4oceanographers,一个博客展示了物理海洋学中的分析,从资源需求的数值计算,编译语言中的功能到专门的潮汐分析,使用交互式地图等奇特的东西可视化各种地理数据。

python4oceanographers

Machinalis有一个公共报告,为地理空间数据处理相关的博客文章提供物质支持。它包括有关基于对象的图像分析和灌溉圈检测的笔记本。

报告

seismo-live是用于地震学的Jupyter笔记本集合。它包含了相当多的关于如何用各种不同的数值方法求解声波和弹性波方程的笔记本。此外,它还包含对地震学中数据处理和信号处理的广泛介绍的笔记本,以及处理环境地震噪声,旋转和冰川地震等的笔记本。

seismo-live

Geo-Python是对芬兰赫尔辛基大学地球科学和地理系成员讲授的地理学(地质学,地球物理学,地理学)学士和硕士学生的Python编程的介绍。课程和练习基于Jupyter笔记本,并且可供任何感兴趣的人使用。

Geo-Python

语言学与文本挖掘

文本分析的研讨会,由Neal Caren专讲。

文本分析的研讨会

检测算法生成的域,这是与IPython & friends进行面向安全的数据分析的Data Hacking集合的一部分。

检测算法生成的域

挖掘社交网络(第3版)。完整的笔记本系列,配合Matthew Russell和Mikhail Klassen的书看更好,由O'Reilly 撰写。

挖掘社交网络(第3版)

信号处理

傅立叶变换的声音分析。Caleb Madrigal的一套IPython笔记本,用于解释傅立叶变换的内容以及如何将其用于基本音频处理应用程序。

傅立叶变换的声音分析

压缩传感介绍,Python信息处理的一部分:Jose Unpingco撰写的关于这一主题的整本书(和博客)。

压缩传感介绍

Python实现的卡尔曼和贝叶斯滤波器。关于卡尔曼滤波和其他相关贝叶斯过滤技术的教科书和附带的过滤库。

Python实现的卡尔曼和贝叶斯滤波器

使用动态时间扭曲和K最近邻居对人体运动进行分类:来自智能手机陀螺仪和加速度计的信号用于分类人是否正在跑步、行走、坐着等。这个IPython笔记本包含一个python实现的DTW和KNN算法的解释和实际应用。

使用动态时间扭曲和K最近邻居对人体运动进行分类

数字信号处理一系列笔记本,附有关于该主题的硕士课程。

数字信号处理一系列笔记本

openCV介绍,在python中使用openCV进行计算机视觉的入门课程。

openCV介绍

工程教育

Jeff Kantor的化学工程分析介绍。一系列IPython笔记本,介绍了化学工程分析的主题,包括化学计量学,发电消耗分析,质量和能量平衡。

化学工程分析介绍

Andres Marrugo的传感器和执行器。以课程笔记和工程计算的形式的Jupyter笔记本的集合,关于Universidad Tecnológica de Bolívar的IMTR 1713传感器和执行器课程。

传感器和执行器

使用SciPy Stack进行科学计算和数据分析

科学计算的一般主题

IPython笔记中的算法,由Sebastian Raschka撰写。

IPython笔记中的算法

比较Python的编译器的性能- Cythons vs. Numba vs. Parakeet,由Sebastian Raschka撰写。

比较Python的编译器的性能- Cythons vs. Numba vs. Parakeet

Sandia的Rick Muller撰写的Python科学家速成课程。

Python科学家速成课程

一个温柔的介绍Python中的科学的编程,偏重生物学家,由Mickey Atwal撰写,来自冷泉港实验室。

一个温柔的介绍Python中的科学的编程

Python for Data Science是一个由 Joe McCarthy设计的带有练习的独立迷你课程。

Python for Data Science

关于数据分析的UW / Coursera课程的前几个讲座。(报告)由Chris Fonnesbeck撰写。

关于数据分析的UW / Coursera课程的前几个讲座

%201.ipynb

报告

CythonGSL:GNU科学图书馆(GSL)的Cython接口(项目报告),由Thomas Wiecki撰写。

CythonGSL:GNU科学图书馆(GSL)的Cython接口

numpy的数值计算简介,由Steve Phelps撰写。

numpy的数值计算简介

使用Numba加速数字代码。另一个Numba例子:自组织映射。

使用Numba加速数字代码

NumPy的表现技巧和博客文章,用Cyrille Rossant撰写。

NumPy的表现技巧

博客文章

Justin Riley的IPython并行推/执行/拉动演示。

IPython并行推/执行/拉动演示

理解对R“公式”对象的设计,由Matthew Brett撰写。

理解对R“公式”对象的设计

比较进化模拟的不同方法。此处可用于更好的阅读。使用旧的nbconvert和第一个开发的reveal转换器实现将笔记本转换为HTML演示文稿。由Yoav Ram撰写。

此处

?t=media/appmsg_edit&action=edit&type=10&appmsgid=100011380&isMul=1&token=231318955&lang=zh_CN#/

旅行商问题,由Peter Norving撰写。

旅行商问题

Fernando Perez 的针对科学家的git教程。

针对科学家的git教程

%20Control.ipynb

使用pymatbridge 在IPython Notebook中运行MATLAB。

交互式曲线拟合,该lmfit软件包为SciPy中的曲线拟合算法提供基于小部件的界面。

交互式曲线拟合

Jeff Thompson 撰写的为分布式计算提供Python Spark API的可视指南。

撰写的为分布式计算提供Python Spark API的可视指南

由Steve Phelps撰写的关于使用Apache Spark和Python进行Map-Reduce编程的教程。

关于使用Apache Spark和Python进行Map-Reduce编程的教程。

CodeCombat gridmancer求解器由Arn-O提供。这个笔记本解释了如何使用启发式函数改进递归树搜索,并找到gridmancer的最小解决方案。

社交数据

生存分析,生命线图书馆的插图,由Cam Davidson Pilon提供。

由Skipper Seabold提供的(完整报告)重建2012年美国总统选举的Nate Silver的538模型。

2012年美国总统选举的Nate Silver的538模型

关于新城,Conneticut的桑迪胡克大屠杀的数据,附有关于该主题的更详细的博客文章。这是笔记本和附带的数据。作者:Brian Keegan。

博客文章

更多关于维基百科数据的枪支暴力分析。

关于维基百科数据的枪支暴力分析

对加沙 - 以色列2012年危机的分析。

对加沙 - 以色列2012年危机的分析

排名NFL球队。全部报告还包括的说明幻灯片。由Sean Taylor提供。

排名NFL球队

%20Rankings.ipynb

自动处理新闻媒体和生成相关图像。

自动处理新闻媒体和生成相关图像

使用熊猫分析哥伦比亚国家学校标准化测试数据(西班牙语)。作者:Javier Moreno。

使用熊猫分析哥伦比亚国家学校标准化测试数据

GDELT入门,由David Masad提供。GDELT是一个包含超过2亿个地理定位事件的数据集,涵盖了1979年至今的全球覆盖范围。David的另一个GDELT示例很好地集成了映射可视化。

GDELT入门

泰坦尼克号的乘客,煤矿灾害,以及船舶速度的变化,由Christopher Fonnesbeck提供。

泰坦尼克号的乘客,煤矿灾害,以及船舶速度的变化

2012年GDELT 对印度尼西亚冲突的地理分析,由herrfz撰写。

2012年GDELT 对印度尼西亚冲突

生物信息学方法对诗歌韵律的计算,由A.Sean·Pue,C.Titus Brown和Tracy Teal提供。

生物信息学方法对诗歌韵律的计算

%20Horizons%20Presentation.ipynb

来自巴黎的Vélib数据集的分析,由Cyrille Rossant分析(Vélib是巴黎的自行车共享计划)。

来自巴黎的Vélib数据集

使用Python看到时代杂志如何写男性和女性,由Neal Caren提供。

使用Python看到时代杂志如何写男性和女性

使用twython和NetworkX探索Twitter流的图形属性,由F. Perez提供(这里有实用程序完整的gist repo)。

使用twython和NetworkX探索Twitter流的图形属性

Kaggle比赛:针对灾难的泰坦尼克号机器学习。由Andrew Conti提供。

Kaggle比赛:针对灾难的泰坦尼克号机器学习

旧金山的餐厅多么干净?一个数据科学教程和博客文章来自Zipfian学院。

旧金山的餐厅多么干净?

NYT性别工资差距和美国国家犯罪。

预测纽约市地铁系统的使用情况,这是Asim Ihsan的Udacity Intro to Data Science Course 的最终项目。

最终项目

2014年世界杯决赛的探索性统计分析,由Ricardo Tavares提供。足球分析的笔记本集合的一部分。

2014年世界杯决赛的探索性统计分析

%20exploratory%20data%20analysis%20of%20the%20world%20cup%20final.ipynb

旧金山的药物地理学,Lance Martin对SF中公共犯罪数据的GIS分析。

旧金山的药物地理学

地理数据科学是Dani Arribas-Bel讲授的学习访问,挖掘和分析社会现象空间数据的完整课程。

地理数据科学

使用Python和Pandas进行公开的OKCupid的个人资料数据集的分析和可视化,由Alessandro Giusti提供,包括许多彩色的的数据可视化。

使用Python和Pandas进行公开的OKCupid的个人资料数据集的分析和可视化

心理学和神经科学

Will Adler提出的与神经种群的线索组合。理论的直觉和模拟(Ma et al,2006),通过概率人口代码,神经元可以用简单的线性操作执行最佳线索组合。在不损害敢管系统的情况下显示皮质活动的变化,是一种编码感官测量不确定性的自适应机制。

神经种群的线索组合

由Ariel Rokem 提供的使用非线性函数对心理物理数据进行建模。

使用非线性函数对心理物理数据进行建模

可视化脑细胞连接的数学模型。研究了不同感受域函数和自然图像的卷积效应。

可视化脑细胞连接的数学模型

用于视觉研究的Python。为使用Python编程的视觉研究人员提供为期三天的速成课程,使用PsychoPy和psychopy_ext构建实验,使用PyMVPA学习fMRI多体素模式分析,以及在Python中使用简化的图像处理。

用于视觉研究的Python

装载和可视化fMRI数据,是GAEL Varoquaux的NiLearn课程的功能性连接的一部分。

机器学习,统计和概率

使用sklearn进行机器学习的教程,这是一个由Andreas Mueller创建的基于IPython的幻灯片。

使用sklearn进行机器学习的教程

?t=media/appmsg_edit&action=edit&type=10&appmsgid=100011380&isMul=1&token=231318955&lang=zh_CN#/

用Python的scikit-learn介绍机器学习,由Cyrille Rossant提供。这是一个来自IPython Cookbook的免费教程,也是对于数据科学的一个全面的Python教程。

用Python的scikit-learn介绍机器学习

Python预测模型介绍,由Olivier Grisel提供。

基于Wild数据库中已标记面孔子集的面部识别,由Olivier Grisel提供。

基于Wild数据库中已标记面孔子集的面部识别

%20Faces%20in%20the%20Wild%20recognition.ipynb

面向多层次建模的贝叶斯方法介绍,由Chris Fonnesbeck提供。

面向多层次建模的贝叶斯方法介绍

介绍贝叶斯网络由Kui Tang提供。

介绍贝叶斯网络

%20Bayesian%20Network%20Demo.ipynb

由Thomas Wiecki 提供的用PyMC3进行贝叶斯数据分析。

用PyMC3进行贝叶斯数据分析

对于解决模式分类问题的例子集合,由Sebastian Raschka撰写。

对于解决模式分类问题的例子集合

介绍使用Python的线性回归,由Kevin Markham撰写。

介绍使用Python的线性回归

Python机器学习,这是一个基于Andrew Ng的Coursera课程的机器学习系列。数据科学的笔记本大集合的一部分由Hohn Wittenauer提供。

Python机器学习

可能性,悖论和理性人原则,作者Peter Norvig。

可能性,悖论和理性人原则

你有可能对Yelp进行五星评价吗?--用scikit-learn 弄脏你的手,由Xun Tang提供。完整的幻灯片。

你有可能对Yelp进行五星评价吗?--用scikit-learn 弄脏你的手

幻灯片

地理人口统计细分模型,由Filipa Rodrigues编写。

地理人口统计细分模型

物理,化学和生物学

用blasr和(I)Python编写一个基因组汇编程序,由[Jason Chin](Jason Chin)编写。

用blasr和(I)Python编写一个基因组汇编程序

使用Python的多体动力学和控制,来自Jason K. Moore 的笔记本文件。

使用Python的多体动力学和控制

化学结构的显示和操作,由Greg Landrum提供,使用rdkit。

化学结构的显示和操作

氢的声音,可视化和聆听氢的量子力学光谱。作者:Matthias Bussonnier。

氢的声音

大型强子对撞机(LHC)的粒子物理学:在LHCb大规模中使用ROOT:由CERN的Alexander Mazurov和Andrey Ustyuzhanin 提供的笔记本1和笔记本2。

笔记本1

笔记本2

%2Cex3.ipynb

使用Python的NumPy的反应扩散方程求解器,由Georg Walther提供的一个演示,关于IPython笔记本如何用于在一页上讨论数值算法的理论和实现。

使用Python的NumPy的反应扩散方程求解器

比较进化模拟的不同方法。此处也可用于更好的可视化。使用旧的nbconvert和第一个开发的reveal转换器实现将笔记本转换为HTML演示文稿。由Yoav Ram提供。

经济与金融

由Vincent Arel-Bundock,Reinhart和Rogoof提供的经济增长的高度争议性分析的复制,完整报告。这是基于Herndon,Ash和Pollin对原始分析的广泛宣传。

Vincent Arel-Bundock

~varel

经济增长的高度争议性分析的复制

完整报告

面向经济金融的fecon235系列笔记本,用于检验经济学和金融学的时间序列数据。Easy API可以自由访问美联储,SEC,CFTC,股票和期货交易所的数据。因此,可以复制旧笔记本的研究,并使用最新数据进行更新。例如,该笔记本预测美联储可能会制定联邦基金利率政策,但CFTC交易商承诺报告中可以观察到主要资产类别的市场情绪。主要经济指标重新规范化:例如,各种通货膨胀指标,可选择具有来自美国国债的前瞻性盈亏平衡率。其他笔记本检查了国际市场:特别是黄金和外汇。

面向经济金融的fecon235

固定收益:结构化债券 - 交互式场景,在Jupyter使用交互式小部件和Python的连续偿还债券,由Mats Gustavsson提供。

固定收益:结构化债券 - 交互式场景

地球科学和地理空间数据

索海底栖息地:使用带有GRASS&R的IPython Notebook进行地理分析。这在笔记本中嵌入了幻灯片和Web旋转地球仪(Cesium)。作者:Massimo Di Stefano。

探索海底栖息地:使用带有GRASS&R的IPython Notebook进行地理分析。

使用IPython进行地理空间数据。来自SciPy2013 的Kelsey Jordahl的教程。

使用IPython进行地理空间数据

数据可视化和绘图

绘制陷阱:绘制大型数据集时的常见问题,以及如何避免这些问题。作者:James A. Bednar。

绘制陷阱

使用数据共享器可视化的美国人口普查数据和纽约出租车数据。

数据共享器

来自Plotly的带有交互式Hans Rosling Gapminder气泡图的笔记本。

笔记本

通过基于网络资源的数据和可视化集成。使用NetCDF,Matplotlib,IPython Parallel和ffmpeg从网格数据的时间序列生成视频动画。作者:Massimo Di Stefano。

通过基于网络资源的数据和可视化集成

21交互式,D3绘图来自matplotlib,ggplot for Python,prettyplotlib,Stack Overflow和seaborn。

21交互式,D3绘图来自matplotlib,ggplot for Python,prettyplotlib,Stack Overflow和seaborn

使用Matplotlib和Mayavi的复值函数的可视化,由Emilia Petrisor提供。

使用Matplotlib和Mayavi的复值函数的可视化

bqplot是一个完全基于该ipywidgets基础架构构建的基于d3的交互式可视化库。请看Hans Rosling的国富论的pythonic recreation。

bqplot

用于Matplotlib可视化的D3查看器,与上述不同,不依赖于Plot.ly帐户。

用于Matplotlib可视化的D3查看器

Bokeh是一个用于Python(和其他语言)的交互式Web可视化库。它提供了类似d3的新颖图形,而基于大型数据集,不需要任何Javascript知识。它还有一个Matplotlib兼容层。

Bokeh是一个用于Python(和其他语言)的交互式Web可视化库

HoloViews可让您在笔记本中非常简洁地构建可视化。

HoloViews

2014年E.Tufte Slope Graph比赛冠军,由Pascal Schetelat提供。原始比赛信息在Tufte网站。

2014年E.Tufte Slope Graph比赛冠军

matta,在IPython的笔记本基于d3.js-可视化,由Eduardo Graells-Garrido提供。

在IPython的笔记本基于d3.js-可视化

%20Examples.ipynb

Clustergrammer Interactive Heatmap和DataFrame Viewer这个Python笔记本显示了一个简单的例子,说明如何使用Jupyter Widget Clustergrammer将矩阵文件和Pandas DataFrame可视化为交互式热图(使用D3.js构建)(参见论文)。

Clustergrammer Interactive Heatmap和DataFrame Viewer

论文

数学

Cython的线性代数。以不同方式为笔记本设置样式的教程来展示使用Notebook在线生成高质量的排版。作者:Carl Vogel。

Cython的线性代数

通过结合SymPy和matplotlib,探索即使在低序下,具有平滑外观的功能也可以拥有非常令人惊讶的衍生产品。作者:Javier Moreno。

应用数学和机器学习教程集(土耳其语)。作者:Burak Bayramli。

应用数学和机器学习教程集

iminuit的函数最小化,他们的硬核教程的介绍。由iminuit项目提供。

Jim Mahoney提供的离散余弦变换,简要解释和说明DCT背后的数学及其在JPEG图像格式中的作用。

使用Python的Chebfun,由Olivier Verdier提供的PyChebfun演示。PyChebfun是Battles和Trefethen的Chebfun包的纯粹python实现。

矩阵指数,矩阵指数的介绍,它的应用程序,以及Python和MATLAB中可用软件的列表由Sam Relton提供。

矩阵指数

分形,复杂的数字和你的想象力,由Caleb Fangmeier提供。

由Andrey Grozin撰写的SymPy教程

SymPy教程

~grozin/python/sympy.ipynb

Python数学入门,一系列针对没有/很少Python知识的数学家的笔记本。可以选择笔记本作为研讨会的资源。由Vince Knight提供。

Python数学入门

信号和声音处理

在Python中使用deltasigma 模拟Delta Sigma调制器,这是Richard Schreier 优秀的 MATLAB Delta Sigma工具箱的 Python端口,由Giuseppe Venturini提供。README包中的几个示范笔记本。

在Python中使用deltasigma 模拟Delta Sigma调制器

PyOracle:由Greg Surges音乐结构的自动分析。

SciPy的窗口功能进行快速目视检查和比较合集 由Jaidev Deshpande提供。

SciPy的窗口功能进行快速目视检查和比较合集

泊松图像编辑| 无缝克隆通过由Dhruv Ilesh Shah提供,通过使用泊松求解器在迭代形式实现无缝图像克隆的笔记本。

泊松图像编辑| 无缝克隆

%20Editing/Seamless_Cloning.ipynb

盲源分离| 鸡尾酒会问题由Dhruv Ilesh Shah和Shashwat Shukla提供,这个笔记实现盲源分离,对音频信号以试图解决Cocktail PartyPrblem问题。这个问题已经用两种不同的方法解决了--FOBI和fastICA。

盲源分离| 鸡尾酒会问题

%20Party%20Problem/PCA_ICA_FOBI.ipynb

自然语言处理

由Folgert Karsdorp和Maarten van Gompel 提供的人文学科Python编程。

人文学科Python编程。

由Andres Soto Villaverde提供的 使用Multinomial朴素贝叶斯的新闻分类。

使用Multinomial朴素贝叶斯的新闻分类。

%2010-oct-2017.ipynb

使用随机交叉验证进行的新闻分类,由Andres Soto Villaverde提供。

使用随机交叉验证进行的新闻分类

%20random%20cross-validation%20for%20news%20categorization.ipynb

用于数据分析的Pandas

请注意,在上面的“集合”部分中也与Pandas相关的链接,例如11课程教程的链接。

这是一个10分钟的Pandas旋风之旅,这是Wes McKinney 视频的笔记,Wes McKinney 是Pandas和Python数据分析的作者。

这是一个10分钟的Pandas旋风之旅

使用Pandas进行时间序列分析。

使用Pandas进行时间序列分析

使用Pandas进行财务数据分析。

使用Pandas进行财务数据分析

使用pandas和scipy对用于人类活动检测的智能手机传感器数据进行聚类,这是Coursera数据分析课程的一部分,在Python(repo)中完成。

使用pandas和scipy对用于人类活动检测的智能手机传感器数据进行聚类

使用Pandas进行日志分析,这是由Taavi Burns 在PyConCa 2012上一组展示的一部分。

使用Pandas进行日志分析

用Pandas分析和可视化太阳黑子数据,由Josh Hemann提供。关于简单的的绘图选择如何巧妙地影响我们对数据的解释的启发性讨论。

用Pandas分析和可视化太阳黑子数据

Apache日志的高级分析,由Nikolay Koldunov提供。

Apache日志的高级分析

用Python进行统计数据分析,由Christopher Fonnesbeck提供,SciPy的2013年播视频1,2,3,4。

用Python进行统计数据分析

1

?v=DXPwSiRTxYY

2

?v=TGEBpzJUxdI

3

?v=YZDtBEEZuAk

4

?v=5_rcdhBXD-0

编辑:王菁

校对:林亦霖

译者简介

顾宇华,帝国理工与IE商学院毕业生,现为SxGroup咨询实习生。热情活泼,积极乐观,对数据科学充满热情。

— 完 —

关注清华-青岛数据科学研究院官方微信公众平台“THU数据派”及姊妹号“数据派THU”获取更多讲座福利及优质内容。