Jina-面向任何类别数据的云原生神经搜索框架

云-本地神经搜索[?]适用于以下方面的框架任何数据类型

Jina 允许您在短短几分钟内构建以深度学习为动力的搜索即服务

🌌所有数据类型-大规模索引和查询任何类型的非结构化数据:视频、图像、长/短文本、音乐、源代码、PDF等

🌩️FAST和本机云-从第一天开始的分布式架构,可扩展且设计为本地云:享受集装箱化、流式处理、并行、分片、异步调度、HTTP/GRPC/WebSocket协议

⏱️节省时间这个神经搜索系统的设计模式,从零到生产准备就绪的系统只需几分钟

🍱拥有您的堆栈-保持解决方案的端到端堆栈所有权,避免使用零散的、多供应商的通用旧式工具带来的集成陷阱

运行快速演示

安装

  • 通过PyPI:pip install -U "jina[standard]"
  • 通过Docker:docker run jinaai/jina:latest
更多安装选项
x86/64、arm64、v6、v7 Linux/MacOS和Python 3.7/3.8/3.9 Docker用户
最低要求
(不支持HTTP、WebSocket、Docker)
pip install jina docker run jinaai/jina:latest
Daemon pip install "jina[daemon]" docker run --network=host jinaai/jina:latest-daemon
使用附加服务 pip install "jina[devel]" docker run jinaai/jina:latest-devel

版本标识符are explained here吉娜可以继续奔跑Windows Subsystem for Linux我们欢迎社会各界帮助我们native Windows support

开始使用

文档、执行者和流是JINA中的三个基本概念

1个️⃣复制-粘贴下面的最小示例并运行它:

💡预赛:character embeddingpoolingEuclidean distance

import numpy as np
from jina import Document, DocumentArray, Executor, Flow, requests

class CharEmbed(Executor):  # a simple character embedding with mean-pooling
    offset = 32  # letter `a`
    dim = 127 - offset + 1  # last pos reserved for `UNK`
    char_embd = np.eye(dim) * 1  # one-hot embedding for all chars

    @requests
    def foo(self, docs: DocumentArray, **kwargs):
        for d in docs:
            r_emb = [ord(c) - self.offset if self.offset <= ord(c) <= 127 else (self.dim - 1) for c in d.text]
            d.embedding = self.char_embd[r_emb, :].mean(axis=0)  # average pooling

class Indexer(Executor):
    _docs = DocumentArray()  # for storing all documents in memory

    @requests(on='/index')
    def foo(self, docs: DocumentArray, **kwargs):
        self._docs.extend(docs)  # extend stored `docs`

    @requests(on='/search')
    def bar(self, docs: DocumentArray, **kwargs):
        q = np.stack(docs.get_attributes('embedding'))  # get all embeddings from query docs
        d = np.stack(self._docs.get_attributes('embedding'))  # get all embeddings from stored docs
        euclidean_dist = np.linalg.norm(q[:, None, :] - d[None, :, :], axis=-1)  # pairwise euclidean distance
        for dist, query in zip(euclidean_dist, docs):  # add & sort match
            query.matches = [Document(self._docs[int(idx)], copy=True, scores={'euclid': d}) for idx, d in enumerate(dist)]
            query.matches.sort(key=lambda m: m.scores['euclid'].value)  # sort matches by their values

f = Flow(port_expose=12345, protocol='http', cors=True).add(uses=CharEmbed, parallel=2).add(uses=Indexer)  # build a Flow, with 2 parallel CharEmbed, tho unnecessary
with f:
    f.post('/index', (Document(text=t.strip()) for t in open(__file__) if t.strip()))  # index all lines of _this_ file
    f.block()  # block for listening request

2个️⃣打开http://localhost:12345/docs(扩展的Swagger UI)在浏览器中,单击/搜索制表符和输入:

{"data": [{"text": "@requests(on=something)"}]}

也就是说,我们希望从上面的代码片段中找到与以下内容最相似的行@request(on=something)现在单击执行巴顿!

3个️⃣不是图形用户界面的人?那就让我们用Python来做吧!保持上述服务器运行,并启动一个简单的客户端:

from jina import Client, Document
from jina.types.request import Response


def print_matches(resp: Response):  # the callback function invoked when task is done
    for idx, d in enumerate(resp.docs[0].matches[:3]):  # print top-3 matches
        print(f'[{idx}]{d.scores["euclid"].value:2f}: "{d.text}"')


c = Client(protocol='http', port_expose=12345)  # connect to localhost:12345
c.post('/search', Document(text='request(on=something)'), on_done=print_matches)

,它打印以下结果:

         Client@1608[S]:connected to the gateway at localhost:12345!
[0]0.168526: "@requests(on='/index')"
[1]0.181676: "@requests(on='/search')"
[2]0.192049: "query.matches = [Document(self._docs[int(idx)], copy=True, score=d) for idx, d in enumerate(dist)]"

😔不管用吗?我们的错!Please report it here.

阅读教程

支持

加入我们吧

吉娜的后盾是Jina AIWe are actively hiring全栈开发人员、解决方案工程师在开源领域构建下一个神经搜索生态系统

贡献

我们欢迎来自开源社区、个人和合作伙伴的各种贡献。我们的成功归功于你的积极参与



















Rq Python的简单作业队列

RQ(Redis队列)是一个简单的Python库,用于对作业进行排队并在后台与工作者一起处理它们。它是由Redis支持的,它的设计是为了有一个较低的屏障进入。它应该很容易集成到您的Web堆栈中

RQ需要Redis>=3.0.0



可以找到完整的文档here

支持RQ

如果您发现RQ有用,请考虑通过以下方式支持此项目Tidelift

快速入门

当然,首先要运行Redis服务器:

$ redis-server

要将作业放到队列中,您不必执行任何特殊操作,只需定义通常较长或阻塞的函数:

import requests

def count_words_at_url(url):
    """Just an example function that's called async."""
    resp = requests.get(url)
    return len(resp.text.split())

你确实用了优秀的requests包裹,不是吗?

然后,创建RQ队列:

from redis import Redis
from rq import Queue

queue = Queue(connection=Redis())

并将函数调用排队:

from my_module import count_words_at_url
job = queue.enqueue(count_words_at_url, 'http://nvie.com')

安排作业也同样简单:

# Schedule job to run at 9:15, October 10th
job = queue.enqueue_at(datetime(2019, 10, 8, 9, 15), say_hello)

# Schedule job to run in 10 seconds
job = queue.enqueue_in(timedelta(seconds=10), say_hello)

还支持重试失败的作业:

from rq import Retry

# Retry up to 3 times, failed job will be requeued immediately
queue.enqueue(say_hello, retry=Retry(max=3))

# Retry up to 3 times, with configurable intervals between retries
queue.enqueue(say_hello, retry=Retry(max=3, interval=[10, 30, 60]))

有关更完整的示例,请参阅docs但这才是最本质的

这位工人

要开始在后台执行入队的函数调用,请从项目的目录中启动一个工作器:

$ rq worker --with-scheduler
*** Listening for work on default
Got count_words_at_url('http://nvie.com') from default
Job result = 818
*** Listening for work on default

事情就是这样

安装

只需使用以下命令即可安装最新发布的版本:

pip install rq

如果您想要最先进的版本(很可能已损坏),请使用以下命令:

pip install git+https://github.com/nvie/rq.git@master#egg=rq

相关项目

请查看下面这些可能对您的基于RQ的项目有用的报告

项目历史记录

这个项目的灵感来自于CeleryResquethis snippet,并作为celery或其他基于amqp的排队实现的轻量级替代方案而创建。

Zenbot 是一个使用Node.js和MongoDB的命令行加密货币交易机器人

“要走正道,要看师父,跟着师父走,跟师父走,看穿师父,成为师父。”–禅宗谚语

Zenbot

描述

Zenbot是一个使用Node.js和MongoDB的命令行加密货币交易机器人。它的特点是:

免责声明

  • Zenbot并不是一台万无一失的盈利机器。使用它的风险自负。
  • 加密货币仍处于实验阶段,因此Zenbot也是如此。这意味着,这两个都可能在任何时候失败
  • 运行机器人,以及一般的交易都需要仔细研究涉及的风险和参数。错误的设置可能会给您造成重大损失
  • 千万不要让机器人长时间处于无人监视的状态。Zenbot不知道什么时候停止,所以如果损失太大,要做好停止的准备
  • 通常情况下,默认交易参数与买入持有策略相比表现不佳,因此在“全盘押注”之前,运行一些模拟程序,为您选择的交易所/对找到最佳参数。

文档

详细的文档位于docs-folder

问题

首先来看一下docs还有还有FAQs可能会回答你的问题。如果没有,请在Reddit上询问与Zenbot相关的(编程)问题(subreddit zenbot)

社区

加入Zenbot community on Reddit好了!

捐赠

另外,一些人询问如何向Zenbot开发公司捐款。我们接受捐款的地点是比特币地址下图:

carlos8f的BTC(原Zenbot作者)

187rmNSkSvehgcKpBunre6a5wA5hQQop6W

DeviaVir的BTC(当前维护者)

3A5g4GQ2vmjNcnEschCweJJB4umzu66sdY

谢谢!

值得注意的叉子


许可证:麻省理工学院

特此免费授予任何获得本软件副本和相关文档文件(“本软件”)的人不受限制地处理本软件的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,以及允许获得本软件的人员这样做的权利,但受下列条件限制:(A)任何获得本软件副本和相关文档文件(“本软件”)的人均可不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利;

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中

软件按“原样”提供,没有任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和不侵权的担保。在任何情况下,作者或版权所有者均不对因软件或在软件中的使用或其他交易而引起、产生或与之相关的任何索赔、损害赔偿或其他责任,无论是在合同诉讼、侵权诉讼或其他诉讼中承担责任

TextBlob-简单、Python式的文本处理–情感分析、词性标记、名词短语提取、翻译等等

主页:https://textblob.readthedocs.io/

TextBlob是一个Python(2和3)库,用于处理文本数据。它提供了一个简单的API,用于深入研究常见的自然语言处理(NLP)任务,如词性标记、名词短语提取、情感分析、分类、翻译等

 

from textblob import TextBlob

text = '''
The titular threat of The Blob has always struck me as the ultimate movie
monster: an insatiably hungry, amoeba-like mass able to penetrate
virtually any safeguard, capable of--as a doomed doctor chillingly
describes it--"assimilating flesh on contact.
Snide comparisons to gelatin be damned, it's a concept with the most
devastating of potential consequences, not unlike the grey goo scenario
proposed by technological theorists fearful of
artificial intelligence run rampant.
'''

blob = TextBlob(text)
blob.tags           # [('The', 'DT'), ('titular', 'JJ'),
                    #  ('threat', 'NN'), ('of', 'IN'), ...]

blob.noun_phrases   # WordList(['titular threat', 'blob',
                    #            'ultimate movie monster',
                    #            'amoeba-like mass', ...])

for sentence in blob.sentences:
    print(sentence.sentiment.polarity)
# 0.060
# -0.341

TextBlob站在NLTKpattern,并且两者都玩得很好

功能

  • 名词短语提取
  • 词性标注
  • 情绪分析
  • 分类(朴素贝叶斯、决策树)
  • 标记化(将文本拆分成单词和句子)
  • 词频和词频
  • 解析
  • N元语法
  • 词形变化(复数和单数)与词汇化
  • 拼写更正
  • 通过扩展添加新模型或语言
  • Wordnet集成

现在就去拿吧

$ pip install -U textblob
$ python -m textblob.download_corpora

示例

查看更多示例,请参阅Quickstart guide

文档

有关完整文档,请访问https://textblob.readthedocs.io/

要求

  • Python>=2.7或>=3.5

项目链接

许可证

麻省理工学院有执照。请参阅捆绑的LICENSE有关更多详细信息,请提交文件

Mlcourse.ai-开放机器学习课程

mlcourse.ai是一门开放的机器学习课程,由OpenDataScience (ods.ai),由Yury Kashnitsky (yorko)尤里拥有应用数学博士学位和卡格尔竞赛大师学位,他的目标是设计一门理论与实践完美平衡的ML课程。因此,你可以在课堂上复习数学公式,并与Kaggle Inclass竞赛一起练习。目前,该课程正处于自定步模式检查一下详细的Roadmap引导您完成自定进度的课程。ai

奖金:此外,您还可以购买带有最佳非演示版本的奖励作业包mlcourse.ai任务。选择“Bonus Assignments” tier请参阅主页上的交易详情mlcourse.ai

镜子(🇬🇧-仅限):mlcourse.ai(主站点)、Kaggle Dataset(与Kaggle笔记本相同的笔记本)

自定

这个Roadmap将指导您度过11周的mlCourse.ai课程。每周,从熊猫到梯度助推,都会给出阅读什么文章、看什么讲座、完成什么作业的指示。

内容

这是medium.com上发表的文章列表🇬🇧,habr.com🇷🇺还提到了中文笔记本。🇨🇳并给出了指向Kaggle笔记本(英文)的链接。图标是可点击的

  1. 用PANDA软件进行探索性数据分析🇬🇧🇷🇺🇨🇳Kaggle Notebook
  2. 用Python进行可视化数据分析🇬🇧🇷🇺🇨🇳,Kaggle笔记本电脑:part1part2
  3. 分类、决策树和k近邻🇬🇧🇷🇺🇨🇳Kaggle Notebook
  4. 线性分类与回归🇬🇧🇷🇺🇨🇳,Kaggle笔记本电脑:part1part2part3part4part5
  5. 套袋与随机林🇬🇧🇷🇺🇨🇳,Kaggle笔记本电脑:part1part2part3
  6. 特征工程与特征选择🇬🇧🇷🇺🇨🇳Kaggle Notebook
  7. 无监督学习:主成分分析与聚类🇬🇧🇷🇺🇨🇳Kaggle Notebook
  8. Vowpal Wabbit:用千兆字节的数据学习🇬🇧🇷🇺🇨🇳Kaggle Notebook
  9. 用Python进行时间序列分析,第一部分🇬🇧🇷🇺🇨🇳使用Facebook Prophet预测未来,第2部分🇬🇧🇨🇳卡格尔笔记本:part1part2
  10. 梯度增压🇬🇧🇷🇺🇨🇳Kaggle Notebook

讲座

视频上传到thisYouTube播放列表。引言,videoslides

  1. 用熊猫进行探索性数据分析,video
  2. 可视化,EDA的主要情节,video
  3. 诊断树:theorypractical part
  4. Logistic回归:theoretical foundationspractical part(《爱丽丝》比赛中的基线)
  5. 合奏和随机森林-part 1分类指标-part 2预测客户付款的业务任务示例-part 3
  6. 线性回归和正则化-theory,Lasso&Ridge,LTV预测-practice
  7. 无监督学习-Principal Component AnalysisClustering
  8. 用于分类和回归的随机梯度下降-part 1,第2部分TBA
  9. 用Python(ARIMA,PERPHET)进行时间序列分析-video
  10. 梯度增压:基本思路-part 1、XgBoost、LightGBM和CatBoost+Practice背后的关键理念-part 2

作业

以下是演示作业。此外,在“Bonus Assignments” tier您可以访问非演示作业

  1. 用熊猫进行探索性数据分析,nbviewerKaggle Notebooksolution
  2. 分析心血管疾病数据,nbviewerKaggle Notebooksolution
  3. 带有玩具任务和UCI成人数据集的决策树,nbviewerKaggle Notebooksolution
  4. 讽刺检测,Kaggle Notebooksolution线性回归作为一个最优化问题,nbviewerKaggle Notebook
  5. Logistic回归和随机森林在信用评分问题中的应用nbviewerKaggle Notebooksolution
  6. 在回归任务中探索OLS、LASSO和随机森林nbviewerKaggle Notebooksolution
  7. 无监督学习,nbviewerKaggle Notebooksolution
  8. 实现在线回归,nbviewerKaggle Notebooksolution
  9. 时间序列分析,nbviewerKaggle Notebooksolution
  10. 在比赛中超越底线,Kaggle Notebook

卡格尔竞赛

  1. 如果可以,请抓住我:通过网页会话跟踪检测入侵者。Kaggle Inclass
  2. Dota 2获胜者预测。Kaggle Inclass

引用mlCourse.ai

如果你碰巧引用了mlcourse.ai在您的工作中,您可以使用此BibTeX记录:

@misc{mlcourse_ai,
    author = {Kashnitsky, Yury},
    title = {mlcourse.ai – Open Machine Learning Course},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/Yorko/mlcourse.ai}},
}

社区

讨论在#mlCourse_ai世界上最重要的一条航道OpenDataScience (ods.ai)松懈团队

课程是免费的,但你可以通过承诺以下内容来支持组织者Patreon(每月支持)或一次性付款Ko-fi


Guricorn‘Green Unicorn’ 是一款适用于UNIX的WSGI HTTP服务器

Gunicorn‘Green Unicorn’是用于UNIX的Python WSGI HTTP服务器。这是一个从Ruby‘s移植过来的叉前工人模型Unicorn项目。Gunicorn服务器与各种Web框架广泛兼容,实现简单,对服务器资源的使用很少,而且速度相当快

欢迎加入我们的行列#gunicorn在……上面Freenode

文档

文档位于https://docs.gunicorn.org

安装

Gunicorn要求Python 3.x>=3.5

从PyPI安装:

$ pip install gunicorn

用法

基本用法:

$ gunicorn [OPTIONS] APP_MODULE

哪里APP_MODULE是属于这种模式的$(MODULE_NAME):$(VARIABLE_NAME)模块名称可以是完整的虚线路径。变量名引用应在指定模块中找到的WSGI可调用对象

测试应用示例:

$ cd examples
$ gunicorn --workers=2 test:app

贡献

看见our complete contributor’s guide有关更多详细信息,请参阅

许可证

Gunicorn是在麻省理工学院的许可下发布的。请参阅LICENSE有关更多详细信息,请提交文件

Leon-🧠leon是您的开源个人助理


👋引言

里昂是一种开源个人助理谁能活下来在您的服务器上

做一些事情当你向他索要

你可以的跟他谈谈而且他可以跟你谈谈您还可以给他发短信他还可以给你发短信如果你愿意,里昂可以通过离线保护您的隐私

为什么?

  1. 如果您是(或不是)开发人员,您可能想要构建许多对您的日常生活有帮助的东西。Leon可以帮助您构建他的包/模块(技能)结构,而不是为每个想法构建专门的项目
  2. 使用这种通用结构,每个人都可以创建自己的模块并与其他人共享。因此,只有一个核心(统治所有的核心)
  3. 里昂使用人工智能概念,这很酷
  4. 隐私问题,您可以将Leon配置为与他离线通话。你已经可以在没有任何第三方服务的情况下和他发短信了
  5. 开源是很棒的

这个存储库是用来做什么的?

此资料库包含Leon的以下节点:

  • 服务器
  • 包/模块
  • Web应用程序
  • HotWord节点

里昂能做什么?

今天,最有趣的部分是关于他的核心和他可以扩大规模的方式。他相当年轻,但可以很容易地扩展以拥有新功能(包/模块)。您可以通过浏览packages list

听起来不错吧?那我们开始吧!

☁️单击即可尝试

Gitpod将自动设置环境并为您运行实例

🚀快速入门

必备条件

要安装这些必备组件,可以按照How To section文档的

安装

# Clone the repository (stable branch)
git clone -b master https://github.com/leon-ai/leon.git leon
# OR download the latest release at: https://github.com/leon-ai/leon/releases/latest

# Go to the project root
cd leon

# Install
npm install

用法

# Check the setup went well
npm run check

# Build
npm run build

# Run
npm start

# Go to http://localhost:1337
# Hooray! Leon is running

Docker安装

# Build
npm run docker:build

# Run
npm run docker:run

# Go to http://localhost:1337
# Hooray! Leon is running

📚文档

有关完整文档,请访问docs.getleon.ai

🧭路线图

要了解正在发生的情况,请关注roadmap.getleon.ai

❤️贡献

如果你有改进里昂的主意,请不要犹豫。

里昂需要开源才能生存,他的模块越多,他就变得越熟练

📖里昂背后的故事

你会发现关于这件事的评论blog post

🔔敬请关注

👨作者

路易斯·格勒纳德(@louistiti_fr)

👍赞助商

您也可以通过以下方式进行贡献sponsoring Leon

请注意,我把大部分空闲时间都花在了里昂身上。

通过赞助项目,您可以使项目具有可持续性,并且开发功能的速度更快

关注的焦点不仅限于你在GitHub上看到的活动,还包括对项目方向的很多思考。这与整体设计、架构、视觉、学习过程等自然相关

📝许可证

MIT License

版权所有(C)2019年-目前,路易斯·格勒纳德louis.grenard@gmail.com

干杯!

Google-images-download 从“Google Images”下载数百张图片的Python脚本。这是一个随时可以运行的代码!

Google图片下载

Python脚本,用于“搜索”和“下载”数百张谷歌图片到本地硬盘!

文档

免责声明

这个程序可以让你从谷歌下载大量图片。请不要下载或使用任何违反其版权条款的图片。Google Images是一个搜索引擎,它只对图像进行索引,并允许您找到它们。它不生产自己的图像,因此,它没有任何图像的版权。图像的原始创作者拥有版权

在美国发布的图像自动受其所有者的版权保护,即使它们没有明确带有版权警告。除非在“合理使用”的情况下,否则您不得在未经版权所有者许可的情况下复制版权图像,否则您可能会面临遇到律师警告、停止和停止函以及版权诉讼的风险。请在使用前非常小心!此脚本/代码仅用于教育目的

Moviepy-使用Python编辑视频

MoviePy

MoviePy(documentation)是一个用于视频编辑的Python库:剪切、拼接、标题插入、视频合成(也称为非线性编辑)、视频处理和定制效果的创建。请参阅gallery有关用法的一些示例,请参阅

MoviePy可以读写所有最常见的音频和视频格式,包括GIF,并且可以在Windows/Mac/Linux上运行,使用Python3.6+。下面是它在IPython笔记本中的实际应用:

示例

在本例中,我们打开一个视频文件,选择t=50s和t=60s之间的子剪辑,在屏幕中央添加标题,然后将结果写入新文件:

.) # Overlay text on video result.write_videofile(“myHolidays_edited.webm”,fps=25) # Many options… “>
from moviepy import *

video = VideoFileClip("myHolidays.mp4").subclip(50,60)

# Make the text. Many more options are available.
txt_clip = ( TextClip("My Holidays 2013",fontsize=70,color='white')
             .with_position('center')
             .with_duration(10) )

result = CompositeVideoClip([video, txt_clip]) # Overlay text on video
result.write_videofile("myHolidays_edited.webm",fps=25) # Many options...

招聘维修员!

随着越来越多的人寻求支持(截至2021年1月,270个公开问题!)所有的MoviePy维护人员看起来都很忙,我们很乐意听到开发人员对帮助和解决一些问题(特别是影响您的问题)或审查拉请求感兴趣的消息。如果您感兴趣,请打开问题或直接与我们联系。谢谢!

安装

MoviePy取决于Python模块NumPyImageioDecorator,以及Proglog,它将在MoviePy的安装过程中自动安装。在首次使用MoviePy期间(安装将需要几秒钟),软件FFMPEG应自动下载/安装(通过ImageIO)。如果要使用特定版本的FFMPEG,请按照中的说明操作config_defaults.py遇到问题时,提供反馈

手动安装:下载源代码,可以从PyPI或者,如果您需要开发版本,请从GitHub,将所有内容解压到一个文件夹中,打开终端并键入:

$ (sudo) python setup.py install

使用pip安装:如果你有pip已安装,只需在终端中键入以下内容:

$ (sudo) pip install moviepy

如果你两者都没有setuptools也不是ez_setup如果已安装,则上述命令将失败。在这种情况下,请在安装之前键入以下内容:

$ (sudo) pip install setuptools

可选但有用的依赖项

您可以安装moviepy所有依赖项通过以下方式实现:

$ (sudo) pip install moviepy[optional]

ImageMagick不是严格要求的,但如果要合并文本,则需要。它也可以用作GIF的后端,不过您也可以在没有ImageMagick的情况下使用MoviePy创建GIF

安装ImageMagick后,MoviePy将尝试自动检测其可执行文件的路径。如果失败,您仍然可以通过设置环境变量来配置它(请参阅文档)

PyGame用于视频和声音预览(如果您打算在服务器上使用MoviePy,则与此无关,但对于手动高级视频编辑是必不可少的)

对于高级图像处理,您需要以下一个或多个软件包:

  • Python图像库(PIL)或其分支Pillow
  • Scipy(用于跟踪、分段等)如果未安装PIL和OpenCV,可用于调整视频剪辑的大小
  • Scikit Image某些高级图像处理可能需要
  • OpenCV 2.4.6或更新的版本(提供软件包的版本cv2)可能需要用于某些高级图像处理
  • Matplotlib

例如,使用该方法clip.resize要求至少安装Scipy、PIL、Pillow或OpenCV之一

文档

生成文档具有需要安装的其他依赖项

$ (sudo) pip install moviepy[doc]

文档可以通过以下方式生成和查看:

$ python setup.py build_docs

您可以将其他参数传递给文档构建,如CLEAN BUILD:

$ python setup.py build_docs -E

有关更多信息,请访问Sphinx文档

1.0.0中的新功能:进度条和带有Proglog的消息

在1.0.0中引入了不向后兼容的更改,以使用管理进度条和消息Proglog,它可以在控制台、Jupyter笔记本或任何用户界面(如网站)中显示漂亮的进度条

要显示笔记本友好的进度条,请首先安装IPyWidgets:

sudo pip install ipywidgets
sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension

然后在笔记本的开头输入:

import proglog
proglog.notebook()

有关更多选项,请查看Proglog项目页面

贡献力量

MoviePy是开源软件,最初由Zulko并根据麻省理工学院的执照被释放。该项目托管在GitHub,在这里,每个人都可以贡献、寻求帮助或简单地提供反馈。请阅读我们的Contributing Guidelines有关如何投稿的更多信息,请访问!

你也可以在网上讨论这个项目。RedditGitter对于用法问题和示例,首选这些问题而不是GitHub问题

维护员

Pandas-profiling 从Pandas DataFrame对象创建HTML分析报告

Documentation|Slack|Stack Overflow

从熊猫生成配置文件报告DataFrame

熊猫们df.describe()函数很棒,但对于严肃的探索性数据分析来说有点基础pandas_profiling将熊猫DataFrame扩展为df.profile_report()用于快速数据分析

对于每个列,以下统计信息(如果与列类型相关)显示在交互式HTML报告中:

  • 类型推理:检测types数据帧中的列数
  • 要领:类型、唯一值、缺少值
  • 分位数统计如最小值、Q1、中位数、Q3、最大值、范围、四分位数间范围
  • 描述性统计如均值、模态、标准差、和、中位数绝对偏差、变异系数、峰度、偏度
  • 最频繁值
  • 直方图
  • 相关性突出高度相关的变量、Spearman、Pearson和Kendall矩阵
  • 缺少值缺失值的矩阵、计数、热图和树状图
  • 文本分析了解文本数据的类别(大写、空格)、脚本(拉丁文、西里尔文)和块(ASCII
  • 文件和图像分析提取文件大小、创建日期和维度,并扫描截断的图像或包含EXIF信息的图像

公告

发布版本v3.0.0其中对报告配置进行了全面检查,提供了更直观的API并修复了以前全局配置固有的问题

这是第一个坚持SemverConventional Commits规格说明

电光后端正在进行中:我们可以很高兴地宣布,用于生成个人资料报告的电光后端已经接近v1。招聘测试者!电光后端将作为此软件包的预发行版发布

支持pandas-profiling

关于……的发展pandas-profiling完全依赖于捐款。如果您在该包中发现了价值,我们欢迎您通过以下方式直接支持该项目GitHub Sponsors好了!请帮助我继续支持这个方案。特别令人兴奋的是GitHub与您的贡献相匹配第一年

请在此处查找更多信息:

2021年5月9日💘


内容:Examples|Installation|Documentation|Large datasets|Command line usage|Advanced usage|integrations|Support|Types|How to contribute|Editor Integration|Dependencies


示例

下面的示例可以让您对软件包的功能有一个印象:

具体功能:

教程:

安装

使用管道



通过运行以下命令,可以使用pip包管理器进行安装

pip install pandas-profiling[notebook]

或者,您也可以直接从Github安装最新版本:

pip install https://github.com/pandas-profiling/pandas-profiling/archive/master.zip

使用CONDA


通过运行以下命令,可以使用Conda包管理器进行安装

conda install -c conda-forge pandas-profiling

从源开始

通过克隆存储库或按键下载源代码‘Download ZIP’在这一页上

通过导航到正确的目录并运行以下命令来安装:

python setup.py install

文档

的文档pandas_profiling可以找到here以前的文档仍然可用here

快速入门

首先加载您的熊猫DataFrame,例如使用:

import numpy as np
import pandas as pd
from pandas_profiling import ProfileReport

df = pd.DataFrame(np.random.rand(100, 5), columns=["a", "b", "c", "d", "e"])

要生成报告,请运行以下命令:

profile = ProfileReport(df, title="Pandas Profiling Report")

更深入地探索

您可以按您喜欢的任何方式配置配置文件报告。下面的示例代码将explorative configuration file,它包括文本(长度分布、Unicode信息)、文件(文件大小、创建时间)和图像(尺寸、EXIF信息)的许多功能。如果您对使用的确切设置感兴趣,可以与default configuration file

profile = ProfileReport(df, title="Pandas Profiling Report", explorative=True)

了解有关配置的详细信息pandas-profilingAdvanced usage页面

木星笔记本

我们建议使用Jupyter笔记本以交互方式生成报告。有两个界面(参见下面的动画):通过小部件和通过HTML报告

这是通过简单地显示报告来实现的。在Jupyter笔记本中,运行:

profile.to_widgets()

HTML报告可以包含在Jupyter笔记本中:

运行以下代码:

profile.to_notebook_iframe()

保存报告

如果要生成HTML报告文件,请保存ProfileReport添加到对象,并使用to_file()功能:

profile.to_file("your_report.html")

或者,您也可以以JSON的形式获取数据:

# As a string
json_data = profile.to_json()

# As a file
profile.to_file("your_report.json")

大型数据集

版本2.4引入了最小模式

这是禁用代价高昂的计算(如关联和重复行检测)的默认配置

使用以下语法:

profile = ProfileReport(large_dataset, minimal=True)
profile.to_file("output.html")

有基准可用here

命令行用法

对于熊猫可以立即读取的标准格式的CSV文件,您可以使用pandas_profiling可执行文件

有关选项和参数的信息,请运行以下命令

pandas_profiling -h

高级用法

可以使用一组选项来调整生成的报告

  • title(str):报告标题(默认为‘Pandas Profiling Report’)
  • pool_size(int):线程池中的工作进程数。设置为零时,它将设置为可用CPU数(默认情况下为0)
  • progress_bar(bool):如果为True,pandas-profiling将显示进度条
  • infer_dtypes(bool):何时True(默认)dtype的变量是使用visions使用排版逻辑(例如,将整数存储为字符串的列将被视为数字进行分析)

有关更多设置,请参阅default configuration fileminimal configuration file

您可以在高级用法页面上找到配置文档here

示例

profile = df.profile_report(
    title="Pandas Profiling Report", plot={"histogram": {"bins": 8}}
)
profile.to_file("output.html")

集成

寄予厚望

分析数据与数据验证密切相关:通常,验证规则是根据众所周知的统计数据定义的。为此,pandas-profilingGreat Expectations这是一个世界级的开源库,可以帮助您维护数据质量并改善团队之间关于数据的沟通。远大期望允许您创建期望(基本上是数据的单元测试)和数据文档(便于共享的HTML数据报告)pandas-profiling提供了一种基于ProfileReport的结果创建一套预期的方法,您可以存储这些预期,并使用它来验证另一个(或将来的)数据集

您可以找到有关《远大前程》集成的更多详细信息here

支持开源

如果没有我们慷慨的赞助商的支持,维护和开发熊猫侧写的开源代码是不可能的,它有数百万的下载量和数千的用户

Lambda workstations、服务器、笔记本电脑和云服务为财富500强公司和94%的前50所大学的工程师和研究人员提供动力。Lambda Cloud提供4个和8个GPU实例,起步价为1.5美元/小时。预装TensorFlow、PyTorch、Ubuntu、CUDA和cuDNN

我们要感谢我们慷慨的Github赞助商和支持者,是他们让熊猫侧写成为可能:

Martin Sotir, Brian Lee, Stephanie Rivera, abdulAziz, gramster

如果您想出现在此处,请查看更多信息:Github Sponsor page

类型

类型是有效数据分析的强大抽象,它超越了逻辑数据类型(整型、浮点型等)。pandas-profiling目前,可识别以下类型:布尔值、数值、日期、分类、URL、路径、文件图像

我们为Python开发了一个类型系统,为数据分析量身定做:visions选择合适的排版既可以提高整体表现力,又可以降低分析/代码的复杂性。要了解更多信息,请执行以下操作pandas-profiling的类型系统,请签出默认实现here同时,现在完全支持用户自定义摘要和类型定义-如果您有特定的用例,请提出想法或公关!

贡献

请阅读有关参与Contribution Guide

提出问题或开始贡献的一个低门槛的地方是通过接触熊猫-侧写松弛。Join the Slack community

编辑器集成

PyCharm集成

  1. 安装pandas-profiling通过上述说明
  2. 找到您的pandas-profiling可执行文件
    • 在MacOS/Linux/BSD上:
      $ which pandas_profiling
      (example) /usr/local/bin/pandas_profiling
    • 在Windows上:
      $ where pandas_profiling
      (example) C:\ProgramData\Anaconda3\Scripts\pandas_profiling.exe
  3. 在PyCharm中,转到设置(或首选项在MacOS上)>工具>外部工具
  4. 单击+图标以添加新的外部工具
  5. 插入以下值
    • 名称:熊猫侧写
    • 计划:在步骤2中获得的位置
    • 参数:"$FilePath$" "$FileDir$/$FileNameWithoutAllExtensions$_report.html"
    • 工作目录:$ProjectFileDir$

要使用PyCharm集成,请右键单击任意数据集文件:

外部工具>熊猫侧写

其他集成

其他编辑器集成可以通过拉请求进行贡献

依赖项

配置文件报告是用HTML和CSS编写的,这意味着pandas-profiling需要现代浏览器

你需要Python 3来运行此程序包。其他依赖关系可以在需求文件中找到:

文件名 要求
requirements.txt 套餐要求
requirements-dev.txt 发展的要求
requirements-test.txt 测试的规定
setup.py 对微件等的要求

有趣好用的Python教程

退出移动版
微信支付
请使用 微信 扫码支付