分类目录归档:github

Numerical-linear-algebra-Jupyter笔记本免费在线教材Fast.ai计算线性代数课程

编码器的计算线性代数

本课程重点讨论以下问题:我们如何以可接受的速度和可接受的精度进行矩阵计算?

这门课是在University of San Francisco’s Masters of Science in Analytics计划,2017年夏季(面向正在学习成为数据科学家的研究生)。本课程使用Python和Jupyter笔记本讲授,在大多数课程中使用的库包括Scikit-Learning和Numpy,还有几节课使用Numba(将Python编译为C以提高性能的库)和PyTorch(用于GPU的Numpy的替代库

随附笔记本的还有一个playlist of lecture videos, available on YouTube如果你曾经被一堂课弄糊涂了,或者它讲得太快,请看下一段视频的开头,我在视频的开头复习了上一节课的概念,经常从新的角度或用不同的插图来解释,并回答问题。

获取帮助

您可以通过以下方式提问或分享您的想法和资源Computational Linear Algebra category on our fast.ai discussion forums

目录

下面的清单链接到此存储库中的笔记本,通过nbviewer服务。涵盖的主题:

0. Course Logistics(Video 1)

1. Why are we here?(Video 1)

我们首先对数值线性代数中的一些基本概念做一个高层次的概述

2. Topic Modeling with NMF and SVD(Video 2Video 3)

我们将使用新闻组数据集来尝试识别不同帖子的主题。我们使用术语-文档矩阵来表示文档中词汇的频率。我们使用NMF进行因子分解,然后使用奇异值分解(SVD

3. Background Removal with Robust PCA(Video 3Video 4,以及Video 5)

奇异值分解的另一个应用是识别人物并去除监控视频的背景。我们将介绍使用随机奇异值分解的鲁棒PCA。随机奇异值分解使用LU因式分解

4. Compressed Sensing with Robust Regression(Video 6Video 7)

压缩感知对于以较低的辐射进行CT扫描至关重要–可以用较少的数据重建图像。在这里,我们将学习这项技术,并将其应用于CT图像

5. Predicting Health Outcomes with Linear Regressions(Video 8)

6. How to Implement Linear Regression(Video 8)

7. PageRank with Eigen Decompositions(Video 9Video 10)

我们已经将奇异值分解应用于主题建模、背景去除和线性回归。奇异值分解与特征分解密切相关,因此我们现在将学习如何计算大型矩阵的特征值。我们将使用DBpedia数据,这是维基百科链接的大型数据集,因为这里的主要特征向量给出了不同维基百科页面的相对重要性(这是Google的PageRank算法的基本思想)。我们将看三种不同的计算特征向量的方法,它们的复杂度越来越高(实用性也越来越强!)

8. Implementing QR Factorization(Video 10)


为什么这门课的授课顺序如此怪异?

本课程的结构包括自上而下教学方法,这与大多数数学课程的操作方式不同。通常,在自下而上方法时,您首先学习要使用的所有独立组件,然后逐渐将它们构建成更复杂的结构。这样做的问题是,学生经常失去动力,没有“大局”意识,也不知道他们需要什么

哈佛大学教授大卫·珀金斯有一本书,Making Learning Whole他用棒球作类比。我们不要求孩子们在让他们玩棒球之前记住所有的棒球规则,了解所有的技术细节。相反,他们开始只是玩一般意义上的游戏,然后随着时间的推移逐渐学习更多的规则/细节。

如果你上了Fast.ai深度学习课程,那就是我们用的。你可以听到更多关于我的教学理念in this blog postthis talk I gave at the San Francisco Machine Learning meetup

总而言之,如果你一开始什么都不懂,也不要担心!你不应该这么做的。我们将开始使用一些尚未解释的“黑盒”或矩阵分解,然后我们将在稍后对更低级别的细节进行挖洞分析

首先,把重点放在事情做什么上,而不是它们是什么

Awesomo 很酷的开源项目列表

A.W.E.S.O.M.O是用各种语言编写的有趣的开放源码项目的广泛列表。

如果您有兴趣Open Source并且正在考虑加入开源开发人员社区,那么在这里您可能会找到一个适合您的项目

Subscribe

我们有一个电报频道,我们每天在那里发布新闻,宣布和我们找到的所有开源的好东西,所以订阅我们:@the_art_of_development

语言

想要添加一个有趣的项目吗?

  • 简单地说fork此存储库
  • 使用与其他项目类似的格式将项目添加到列表中
  • 打开new pull request

☝️不过,请记住,我们不接受猛犸象的屎只有具有良好文档的活动和有趣的项目才会被添加。废弃和废弃的项目将被拆除

想支持我们吗?

只需将此列表与您的朋友分享到TwitterFacebookMedium或者其他地方

许可证

awesomo通过@lk-geimfari

在法律允许的范围内,将CC0与awesomo已放弃所有版权以及与以下内容相关或相邻的权利awesomo

您应该已经收到了这项工作附带的CC0法律代码的副本。如果没有,请参见https://creativecommons.org/publicdomain/zero/1.0/

Photon-专为OSINT设计的超快爬行器


Photon Wiki·How To Use·Compatibility·Photon Library·Contribution·Roadmap

主要功能

数据抽取

Photon可以在爬行时提取以下数据:

  • URL(范围内和范围外)
  • 带参数的URL(example.com/gallery.php?id=2)
  • 英特尔(电子邮件、社交媒体帐户、亚马逊存储桶等)
  • 文件(pdf、png、xml等)
  • 密钥(身份验证/API密钥和散列)
  • JavaScript文件和其中存在的端点
  • 与自定义正则表达式模式匹配的字符串
  • 子域和DNS相关数据

提取的信息以有组织的方式保存,或者可以exported as json

灵活性

控制超时、延迟、添加种子、排除匹配正则表达式模式的URL以及其他很酷的功能。范围广泛的options由Photon提供,可以让您完全按照您想要的方式爬行网络

天才

Photon的智能线程管理和精炼逻辑为您提供一流的性能

尽管如此,爬行可能是资源密集型的,但Photon还有一些诀窍。您可以通过以下方式获取存档的URLarchive.org被用作种子,通过使用--wayback选项

插件

码头工人

可以使用轻量级Python-Alpine(103 MB)Docker映像启动光子

$ git clone https://github.com/s0md3v/Photon.git
$ cd Photon
$ docker build -t photon .
$ docker run -it --name photon photon:latest -u google.com

要查看结果,您可以直接访问本地扩展坞卷,您可以通过运行以下命令找到该卷docker inspect photon或通过挂载目标loot文件夹:

$ docker run -it --name photon -v "$PWD:/Photon/google.com" photon:latest -u google.com

频繁且无缝更新

光子正在进行大量的开发和更新,以修复错误。优化性能&定期推出新功能

如果您想查看正在处理的功能和问题,可以在Development项目董事会

可以使用安装和检查更新--update选项。Photon具有无缝更新功能,这意味着您可以在不丢失任何已保存数据的情况下更新Photon

贡献和许可

您可以通过以下方式进行贡献:

  • 报告错误
  • 开发插件
  • 增加更多忍者模式的“API”
  • 给出建议,让它变得更好
  • 修复问题并提交拉式请求

请阅读guidelines在提交拉式请求或问题之前

你想私下谈谈吗?把我打到我的twitter,收件箱已打开:)

光子是根据以下条款获得许可的GPL v3.0 license

Learn-python-按主题拆分的Python脚本集合,包含带有说明的代码示例

学习Python的操场和小抄

这是按以下方式拆分的Python脚本的集合topics并包含代码示例,其中包含解释、不同的用例和指向更多阅读资料的链接

阅读这篇文章Português

这是一个操场因为您可以更改或添加代码以查看它是如何工作的,并且test it out使用断言。它还允许您lint the code您已经编写并检查它是否符合Python代码样式指南。总之,它可能会使您的学习过程更具交互性,并且可能会帮助您从一开始就保持相当高的代码质量

这是一个小抄因为一旦您想要重述的语法,您可能会返回到这些代码示例standard Python statements and constructions另外,因为代码充满了断言,所以您将能够立即看到预期的函数/语句输出,而无需启动它们

您可能还会对以下内容感兴趣🤖Interactive Machine Learning Experiments

如何使用此存储库

此存储库中的每个Python脚本都具有以下结构:

"""Lists  <--- Name of the topic here

# @see: https://www.learnpython.org/en/Lists  <-- Link to further readings goes here

Here might go more detailed explanation of the current topic (i.e. general info about Lists).
"""


def test_list_type():
    """Explanation of sub-topic goes here.
    
    Each file contains test functions that illustrate sub-topics (i.e. lists type, lists methods).
    """
    
    # Here is an example of how to build a list.  <-- Comments here explain the action
    squares = [1, 4, 9, 16, 25]
    
    # Lists can be indexed and sliced. 
    # Indexing returns the item.
    assert squares[0] == 1  # <-- Assertions here illustrate the result.
    # Slicing returns a new list.
    assert squares[-3:] == [9, 16, 25]  # <-- Assertions here illustrate the result.

因此,通常您可能需要执行以下操作:

  • Find the topic你想学习还是复习
  • 阅读每个脚本的文档字符串中链接的注释和/或文档(如上例所示)
  • 查看代码示例和断言以查看用法示例和预期输出
  • 更改代码或添加新断言以查看工作原理
  • Run testslint the code以查看它是否正常工作并且写入是否正确

目录

  1. 快速入门
  2. 操作员
  3. 数据类型
  4. 控制流
  5. 功能
  6. 班级
  7. 模块
  8. 错误和异常
  9. 文件
  10. 添加内容
  11. 标准图书馆简介

必备条件

安装Python

确保你有Python3 installed在您的机器上

您可能想要使用venv创建虚拟环境的标准Python库,并从本地项目目录安装和提供Python、pip和所有从属软件包,以避免扰乱系统范围的软件包及其版本

根据您的安装,您可能可以通过运行以下命令来访问Python3解释器pythonpython3对于pip包管理器也是如此-可以通过运行以下命令来访问它pippip3

您可以通过运行以下命令检查您的Python版本:

python --version

请注意,在此存储库中,每当您看到python假设它是Python3个

安装依赖项

通过运行以下命令安装项目所需的所有依赖项:

pip install -r requirements.txt

测试代码

测试使用以下工具进行pytest框架

通过使用添加文件和函数,您可以为自己添加新的测试test_前缀(即test_topic.py使用def test_sub_topic()内部函数)

要运行所有测试,请从项目根文件夹执行以下命令:

pytest

要运行特定测试,请执行:

pytest ./path/to/the/test_file.py

链接代码

Linting是使用pylintflake8图书馆

PyLint

检查代码是否针对PEP 8样式指南请运行:

pylint ./src/

在Linter将检测到错误的情况下(即missing-docstring)您可能希望通过运行以下命令来阅读有关特定错误的更多信息:

pylint --help-msg=missing-docstring

More about PyLint

Flake8

检查代码是否针对PEP 8样式指南请运行:

flake8 ./src

或者,如果您希望获得更详细的输出,可以运行以下命令:

flake8 ./src --statistics --show-source --count

More about Flake8

支持该项目

您可以通过以下方式支持此项目❤️️GitHub或❤️️Patreon

Pattern-用于Python的Web挖掘模块,包含抓取、自然语言处理、机器学习、网络分析和可视化工具

Pattern是Python的Web挖掘模块。它具有用于以下方面的工具:
  • 数据挖掘:Web服务(Google、Twitter、Wikipedia)、Web爬虫、HTML DOM解析器
  • 自然语言处理:词性标记、n元语法搜索、情感分析、WordNet
  • 机器学习:向量空间模型、聚类、分类(KNN、SVM、感知器)
  • 网络分析:图形中心性与可视化

它有很好的文档记录,通过350多个单元测试进行了彻底的测试,并附带了50多个示例。源代码是按照BSD授权的

示例

此示例使用Python3对从Twitter挖掘的形容词训练分类器。首先,收集包含#WIN或#FAIL标签的tweet。例如:“20美元今天给一位可爱的小老太太小费#赢了”然后解析词性标签,只保留形容词。每条推文都被转换为向量,即形容词→计数项的字典,标记为WINFAIL分类器使用向量来学习哪些其他tweet看起来更像WIN或者更像是FAIL

from pattern.web import Twitter
from pattern.en import tag
from pattern.vector import KNN, count

twitter, knn = Twitter(), KNN()

for i in range(1, 3):
    for tweet in twitter.search('#win OR #fail', start=i, count=100):
        s = tweet.text.lower()
        p = '#win' in s and 'WIN' or 'FAIL'
        v = tag(s)
        v = [word for word, pos in v if pos == 'JJ'] # JJ = adjective
        v = count(v) # {'sweet': 1}
        if v:
            knn.train(v, type=p)

print(knn.classify('sweet potato burger'))
print(knn.classify('stupid autocorrect'))

安装

模式支持Python2.7和Python3.6。要安装Pattern以使其在您的所有脚本中都可用,请解压缩下载并从命令行执行以下操作:

cd pattern-3.6
python setup.py install

如果您有pip,您可以从PyPI repository

pip install pattern

如果上述方法都不起作用,您可以通过三种方式使Python了解该模块:

  • 将模式文件夹放在与脚本相同的文件夹中
  • 将模式文件夹放在模块的标准位置,以便所有脚本都可以使用:
    • c:\python36\Lib\site-packages\(Windows)、
    • /Library/Python/3.6/site-packages/(Mac OS X)、
    • /usr/lib/python3.6/site-packages/(UNIX)
  • 将模块的位置添加到sys.path在您的脚本中,在导入之前:
MODULE = '/users/tom/desktop/pattern'
import sys; if MODULE not in sys.path: sys.path.append(MODULE)
from pattern.en import parsetree

文档

有关文档和示例,请参阅user documentation

版本

3.6

许可证

BSD,请参见LICENSE.txt有关更多详细信息,请参阅

参考文献

De Smedt,T.,Daelemans,W.(2012)。Python的模式。机器学习研究杂志,13,2031-2035

贡献力量

源代码托管在GitHub上,欢迎投稿或捐赠

捆绑的依赖项

Pattern与以下数据集、算法和Python包捆绑在一起:

  • 布里尔标记器,Eric Brill
  • 用于荷兰语的布里尔标记器、杰伦·格尔岑(Jeroen Geertzen)
  • 用于德语的Brill标记器,Gerold Schneider&Martin Volk
  • 西班牙语的布里尔标记器,在Wikicorpus上进行培训(Samuel Reese&Gema Boleda等人)
  • 法语的布里尔标记器,关于Lefff的培训(Benoüt Sagot&Lionel Clément等人)
  • 适用于意大利语的布里尔标记器,从维基词典中挖掘
  • 英语复数,Damian Conway
  • 西班牙语动词词尾变化,Fred Jehle
  • 法语动词词尾变化、鲍勃·萨利塔(Bob Salita)
  • Graph JavaScript框架,Aslak Hellesoy&Dave Hoover
  • LIBSVM、张志忠、林志仁
  • LIBLINEAR、范荣恩等人
  • 网络X中心性供稿:Aric Hagberg,Dan Schult&Pieter Swart
  • 拼写校正器、彼得·诺维格(Peter Norvig)

确认

作者:

投稿人(按时间顺序):

  • 弗雷德里克·德·布莱泽
  • 杰森·维纳
  • 丹尼尔·弗里森
  • 杰伦·格尔岑
  • 托马斯·克伦贝兹
  • 肯·威廉姆斯
  • 彼得里斯·埃林斯(Peteris Erins)
  • 拉杰什·奈尔
  • F·德·斯梅德
  • RadimŘehůřek
  • 汤姆·洛雷多
  • 约翰·德博维斯
  • 托马斯·西里奥
  • 杰罗德·施耐德
  • 马丁·沃尔克
  • 塞缪尔·约瑟夫
  • 舒班舒·米什拉(Shubhanshu Mishra)
  • 罗伯特·埃尔韦尔
  • 弗雷德·杰尔
  • Antoine Mazières+Fabelier.org
  • Rémi de Zoeten+closealert t.nl
  • 肯尼思·科赫(Kenneth Koch)
  • 延斯·格里沃拉
  • 法比奥·马菲亚
  • 史蒂文·洛里亚
  • 科林·莫尔特(Colin Molter)+tevizz.com
  • 彼得·布尔
  • 毛里齐奥·桑巴蒂
  • 旦福
  • 塞尔瓦托·迪·迪奥
  • 文森特·范·阿施
  • 弗雷德里克·埃尔韦特

Anti-Anti-Spider 对各类网站进行反-反爬虫

基于美国有线电视新闻网的验证码图片识别

简介

本项目采用alexnet模型和letnet模型,可根据实际需要选择(在train_model.py中的train函数修改即可)95.5%

作者有话说

不知不觉这个git库伴随我从16到到20年,带给我自己最棒的一段人生旅程,
整理了这份文档,希望任何想学习图片识别,玩玩卷积神经网络的同学可以最便捷的上手体验。
请谨慎使用技术,仅支持学习,不支持任何黑灰产相关
可参看:https://www.urlteam.cn/?p=1893 https://www.urlteam.cn/?p=1406
原先的Anti-Anti-Spider 全部内容移动到 原Anti-Anti-Spider 目录下
有何疑问可邮件 543429245@qq.com 咨询
模型文件下载 如果出现无法解压,可以使用:
https://www.urlteam.cn/%E5%8F%AF%E7%94%A8%E8%AE%AD%E7%BB%83%E9%9B%86%E4%B8%8E%E8%AE%AD%E5%A5%BD%E7%9A%84%E6%A8%A1%E5%9E%8B.zip

Alexnet模型结构

根据验证码的复杂度不同,训练的时间也会有较大的不同

使用方法

1.开始训练样本前,修改conf/config.json
2.将预处理过的数据集分成验证集和训练集,放到sample目录下
3.运行train_model.py开始训练,训练完成的模型保存至model_result中
4.将训练好的模型放置model_result,运行cnn_models/recognition.py,选定验证码,即可看到模型效果

环境配置

TensorFlow CPU版本安装:pip install tensorflow==1.9.0TensorFlow图形处理器版本安装:pip install tensorflow-gpu==1.9.0GUP版本的安装比较麻烦,需要安装cuda和cuDNN才能使TensorFlow调动GPU下图为TensorFlow,Python,CUDA与cuDNN之间的版本对应关系:CUDA与CuDNN安装过程主要有两步:

  1. 到官网下载CUDA并安装
  2. 将cuDNN解压,复制到cuda安装目录下这里提供两个文件的链接:CUDA:https://developer.nvidia.com/cuda-toolkit-archiveCuDNN:https://developer.nvidia.com/rdp/cudnn-archive更具体的安装过程度娘可帮你轻松解决(linux、windows这两步的操作方法各不相同)

项目结构

├─cnn_models
│  ├─cnn_model.py		# CNN网络类
│  └─recognition.py		# 验证训练结果
├─conf
│  └─config.json		# 配置文件
├─logs			# 模型训练日志
├─model_result	# 模型保存地址
│  └─1040		# 一套训练完成的验证码训练集及对应模型
├─sample
│  ├─test		# 训练集(训练集与验证集一般是对总数据集9:1分割)
│  └─train		# 验证集
├─src			# 配置环境所需的工具,可根据自身情况到网上下载
├─train_model.py		# 训练程序
└─verify_sample.py		# 制作数据集(打标签加图片预处理)

图片预处理

  • 为验证码图片打上标签,如:命名为1040_2019-10-13_10_1092.jpg,1092为标签,其余为附加信息,可根据自己需要更改,用_分割即可
  • 由于模型输入要求输入必须为227*227,所有需要调整图片形状,Verify_sample.py中提供有工具函数

注意事项

alexnet输入必须为227*227的图片,所有图片预处理时可通过PIL中的函数线性转换图片形状,或者缩放后粘贴到227*227的背景中。

Pysheeet Python代码片段小抄

创建Pysheeet的目的是收集Python代码片段,以减少编码时间,使生活变得更容易、更快。欢迎任何投稿。请随时派生并向此项目发送拉取请求

Python 3中的新特性

这部分只提供Python3中一些重要特性的快速浏览。如果您对所有最重要的特性都感兴趣,请阅读官方文档。What’s New in Python

小抄

高级小抄

附录

PDF版本

pdf

如何运行服务器

$ virtualenv venv
$ . venv/bin/activate
$ pip install -r requirements.txt
$ make
$ python app.py

# URL: localhost:5000

Assimp 导入和导出各种3D模型格式的库

打开资源导入库(ASSIMP)

用于导入和导出各种3D模型格式的库,包括生成缺失渲染数据的场景后处理

当前项目状态










提供了面向C和C++的API。有到其他语言(C#、Java、Python、Delphi、D)的各种绑定。Assimp也可以在Android和iOS上运行。此外,assimp还具有各种网格后处理工具:法线和切线空间生成、三角剖分、顶点缓存局部性优化、移除退化的基本体和重复顶点、按基本体类型排序、合并冗余材质等等

最新单据的

请在以下地址查阅最新文件:Asset-Importer-Lib-Doc

参与进来吧

这是包含最新功能和错误修复的开发资源库。不过,为了更有效地使用,我们建议使用可从以下网址获得的稳定版本之一Github Assimp Releases
你在文档里发现窃听器了吗?使用Doc-Repo
请同时查看我们的维基:https://github.com/assimp/assimp/wiki

如果您想查看我们的模型数据库,请使用以下回购:https://github.com/assimp/assimp-mdb

支持的文件格式

您可以找到支持的文件格式的完整列表here

大楼

让我们来看看https://github.com/assimp/assimp/blob/master/Build.md文件。我们在vcpkg中可用,并且我们的构建系统是CMake;如果您以前使用过CMake,那么您很有可能知道要做什么

端口

其他工具

open3mod是基于Assimp的导入和导出功能的功能强大的3D模型查看器

存储库结构

Open Asset Import Library是用C++实现的。目录结构如下所示:

/code		Source code
/contrib	Third-party libraries
/doc		Documentation (doxysource and pre-compiled docs)
/include	Public header C and C++ header files
/scripts 	Scripts used to generate the loading code for some formats
/port		Ports to other languages and scripts to maintain those.
/test		Unit- and regression tests, test suite of models
/tools		Tools (old assimp viewer, command line `assimp`)
/samples	A small number of samples to illustrate possible
                    use cases for Assimp

源代码的组织方式如下:

code/Common			The base implementation for importers and the infrastructure
code/PostProcessing		The post-processing steps
code/AssetLib/<FormatName>	Implementation for import and export for the format

从哪里获得帮助

有关更多信息,请访问our website或查看./doc-文件夹,包含HTML格式的官方文档。(适用于Windows的CHM包含在某些版本包中,应位于此处的根文件夹中)

如果医生不能解决你的问题,那就问吧StackOverflow with the assimp-tag如果您认为您发现了错误,请在Github上打开一个问题

开放式资源导入库是一个库,用于将各种3D文件格式加载到共享的内存格式中。它支持的不只是40种文件格式用于导入,以及越来越多的文件格式可供选择用于导出

我们还有一个Gitter频道:Gitter

贡献

我们高度赞赏对ASSIMP的贡献。参与进来的最简单方式是提交一个拉取请求,其中包含您对主存储库的master分支机构

贡献者

代码贡献者

这个项目的存在要归功于所有做出贡献的人。[Contribute]

财政捐赠者

成为一名财政捐赠者,帮助我们维持我们的社区。[Contribute]

个人

组织机构

与您的组织一起支持此项目。您的徽标将在此处显示,并带有指向您的网站的链接。[Contribute]

许可证

我们的执照是基于修改后的,3-子句BSD-许可证

一个非正式的总结是:想做什么就做什么,但在您的产品中包含Assimp的许可文本-如果我们的代码不起作用,不要起诉我们。请注意,与LGPLed代码不同,您可以静态链接到Assimp。有关法律详细信息,请参阅LICENSE文件

为什么要取这个名字?

对不起,我们是德国人:-),没有以英语为母语的人

PySimpleGUI Python图形用户界面

用于人类的Python图形用户界面

将tkinter、Qt、WxPython和REMI(基于浏览器)GUI框架转换为更简单的界面。通过使用初学者理解的Python核心数据类型(列表和字典)简化了窗口定义。通过将事件处理从基于回调的模型更改为消息传递模型,可以进一步简化

您的代码不是必填项具有面向对象的体系结构,使包可以被更多的受众使用。虽然体系结构很容易理解,但它并不容易理解。必然限制您只处理简单的问题

但是,有些程序并不能很好地适用于PySimpleGUI。根据定义,PySimpleGUI实现底层GUI框架功能的子集。很难准确定义哪些程序适合PySimpleGUI,哪些不适合。这取决于你的计划的细节。复制Excel的每一个细节就是不太适合PySimpleGUI的一个例子

Japanese version of this readme

我想喝杯咖啡!它支持顾问、编辑、域名注册和PySimpleGUI成为一个蓬勃发展的项目所需的许多其他东西。每一笔捐款都是有帮助的,我们需要并感激帮助。


统计数据📈

PyPI统计信息和版本

Tk TK 2.7 Qt WxPython 网络(REMI)

GitHub统计信息

问题 提交活动 星星 文档


什么是PySimpleGUI❓

PySimpleGUI是一个Python包,它允许所有级别的Python程序员创建GUI。您可以使用包含小部件(在PySimpleGUI中称为“元素”)的“布局”来指定GUI窗口。您的布局用于创建一个窗口,该窗口使用4个受支持的框架之一来显示您的窗口并与之交互。支持的框架包括tkinter、Qt、WxPython或REMI。术语“包装器”有时用于这些类型的包裹

您的PySimpleGUI代码比直接使用底层框架编写的代码更简单、更短,因为PySimpleGUI为您实现了大部分“样板代码”。此外,还简化了接口,以便需要尽可能少的代码即可获得所需的结果。根据使用的程序和框架的不同,PySimpleGUI程序可能需要1/2到1/10的代码量才能直接使用其中一个框架创建相同的窗口

虽然目标是封装/隐藏您在其上运行的GUI框架使用的特定对象和代码,但如果需要,您可以直接访问框架的依赖小部件和窗口。如果尚未使用PySimpleGUIAPI公开或访问设置或功能,则不会将您与框架隔开。您可以扩展功能,而无需直接修改PySimpleGUI包本身

弥合“GUI鸿沟”

Python为编程社区带来了大量的人。项目的数量和涉及的领域之广令人难以置信。但通常情况下,除了少数人之外,所有人都无法接触到这些技术。大多数Python程序都是基于“命令行”的。这对于程序员来说不是问题,因为我们都习惯于通过文本界面与计算机交互。虽然程序员对命令行界面没有问题,但大多数“普通人”都有问题。这造成了一个数字鸿沟,一个“GUI鸿沟”

向程序添加GUI可使该程序向更广泛的受众开放。它变得更加平易近人。GUI还可以使与某些程序的交互变得更容易,即使对于那些熟悉命令行界面的人也是如此。最后,有些问题需要GUI


关于我👋

嗨,你们好!我是迈克。你会发现我就在这里,在PySimpleGUI GitHub上,解决问题,不断推动PySimpleGUI向前发展。我把白天、晚上和周末都奉献给了项目和PySimpleGUI用户。我们的成功最终是共享的。当你成功的时候我就成功了

虽然我是Python的新手,但我从70年代就开始编写软件了。我职业生涯的大部分时间都是在硅谷创造产品。我为PySimpleGUI带来了与我开发的公司产品相同的专业精神和奉献精神。你们现在是我的客户了

项目目标🥅

PySimpleGUI项目最重要的两个目标是:

  • 玩得开心
  • 你的成功

有趣的作为一个严肃项目的目标听起来很奇怪,但这是一个严肃的目标。我发现编写这些GUI程序非常有趣。其中一个原因是编写一个完整的解决方案所需的时间非常短。如果我们不享受这个过程,那么就会有人放弃

这里有大量的文档、一本食谱、100个可让您立即运行的演示程序、详细的通话参考资料、YouTube视频、在线特立尼达演示等等。所有人都在努力创造。有趣的经历

你的成功是一个共同的目标。PySimpleGUI是为开发人员构建的。你们是我的偷窥者。看到用户和PySimpleGUI共同努力的结果是意想不到的回报。使用文档和其他材料帮助构建您的应用程序。如果您遇到麻烦,打开Issue on the PySimpleGUI GitHub请看下面关于支撑的部分


教育资源📚

www.PySimpleGUI.org易于记忆,也是文档所在的位置。您将在顶部找到代表几个不同文档的选项卡。文档位于“Read the Docs”(阅读文档)上,因此每个文档都有一个目录,便于搜索

这里有100页的书面文档和100页的示例程序,它们将帮助您非常迅速地发挥作用。使用PySimpleGUI时,您可以在一个下午完成项目,而不需要几天或几周的投资来学习单个GUI包

示例1-单次窗口

这种类型的程序被称为“一次性”窗口,因为该窗口只显示一次,收集的值,然后关闭。它不会像在文字处理器中那样长时间保持打开状态

一个简单的PySimpleGUI程序剖析

PySimpleGUI程序分为5个部分

import PySimpleGUI as sg                        # Part 1 - The import

# Define the window's contents
layout = [  [sg.Text("What's your name?")],     # Part 2 - The Layout
            [sg.Input()],
            [sg.Button('Ok')] ]

# Create the window
window = sg.Window('Window Title', layout)      # Part 3 - Window Defintion
                                                
# Display and interact with the Window
event, values = window.read()                   # Part 4 - Event loop or Window.read call

# Do something with the information gathered
print('Hello', values[0], "! Thanks for trying PySimpleGUI")

# Finish up by removing from the screen
window.close()                                  # Part 5 - Close the Window

代码将生成此窗口


示例2-交互窗口

在本例中,我们的窗口将一直显示在屏幕上,直到用户关闭窗口或单击Quit按钮。您在前面看到的单次窗口与交互式窗口之间的主要区别在于增加了“事件循环”。事件循环从您的窗口读取事件和输入。应用程序的核心位于事件循环中

import PySimpleGUI as sg

# Define the window's contents
layout = [[sg.Text("What's your name?")],
          [sg.Input(key='-INPUT-')],
          [sg.Text(size=(40,1), key='-OUTPUT-')],
          [sg.Button('Ok'), sg.Button('Quit')]]

# Create the window
window = sg.Window('Window Title', layout)

# Display and interact with the Window using an Event Loop
while True:
    event, values = window.read()
    # See if user wants to quit or window was closed
    if event == sg.WINDOW_CLOSED or event == 'Quit':
        break
    # Output a message to the window
    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")

# Finish up by removing from the screen
window.close()

这是示例2生成的窗口

下面是在输入字段中输入值并单击确定按钮后的结果

让我们快速了解一下此示例与单一窗口之间的一些不同之处

首先,您会注意到布局中的不同之处。有两个变化尤其重要。其一是添加了key参数添加到Input元素和一个Text元素。一个key类似于元素的名称。或者,在Python术语中,它就像一个字典键。这个Input元素的键将在稍后的代码中用作字典键

另一个不同之处是增加了这个Text元素:

          [sg.Text(size=(40,1), key='-OUTPUT-')],

有两个参数,即key我们已经调查过了。这个size参数定义元素的大小(以字符为单位)。在这种情况下,我们表示这是Text元素宽40个字符,高1个字符。请注意,没有指定文本字符串,这意味着它将为空。您可以很容易地在创建的窗口中看到此空白行

我们还添加了一个按钮“退出”

Event Loop有我们熟悉的window.read()打电话

以下是Read IF语句:

    if event == sg.WINDOW_CLOSED or event == 'Quit':
        break

这段代码检查用户是否通过单击“X”或单击“Quit”按钮关闭了窗口。如果发生这两种情况中的任何一种,则代码将中断事件循环

如果窗口没有关闭,也没有单击Quit按钮,则继续执行。唯一可能发生的事情是用户单击了“确定”按钮。Event Loop中的最后一条语句如下所示:

    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI")

此语句更新Text具有密钥的元素-OUTPUT-用一根绳子。window['-OUTPUT-']查找具有键的元素-OUTPUT-那把钥匙属于我们的空白处Text元素。一旦该元素从查找中返回,那么它的update方法被调用。几乎所有元素都有一个update方法。此方法用于更改元素的值或更改元素的某些配置

如果我们希望文本是黄色的,那么可以通过添加一个text_color参数添加到update方法,以便它读取:

    window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI",
                              text_color='yellow')

在添加了text_color参数,这是我们新的结果窗口:

每个元素可用的参数都记录在call reference documentation以及文档字符串。PySimpleGUI提供了大量文档来帮助您了解所有可用的选项。如果您查找update方法,用于Text元素,您将找到该调用的以下定义:

正如您可以看到的,有几件事可以更改为Text元素。调用参考文档是一个有价值的资源,它将使PySimpleGUI、uhm、uhm中的编程变得简单


布局很好笑,哈哈!😆

您的窗口布局是“列表列表”(LOL)。窗户被分解成“行”。窗口中的每一行都会成为布局中的列表。将所有列表连接在一起,您就得到了一个布局。列表列表

这是与以前相同的布局,但增加了一个Text元素添加到每行,以便您可以更轻松地查看行是如何定义的:

layout = [  [sg.Text('Row 1'), sg.Text("What's your name?")],
            [sg.Text('Row 2'), sg.Input()],
            [sg.Text('Row 3'), sg.Button('Ok')] ]

此布局的每一行都是将在窗口的该行上显示的元素列表

与使用其他框架进行GUI编程相比,使用列表定义GUI有一些巨大的优势。例如,您可以使用Python的列表理解功能在一行代码中创建按钮网格

这3行代码:

import PySimpleGUI as sg

layout = [[sg.Button(f'{row}, {col}') for col in range(4)] for row in range(4)]

event, values = sg.Window('List Comprehensions', layout).read(close=True)

生成此窗口,该窗口具有4 x 4网格的按钮:

回想一下,“有趣”是该项目的目标之一。直接将Python强大的基本功能应用于GUI问题非常有趣。创建GUI不需要几页代码,只需要几行(通常是1行)代码

折叠代码

可以将窗口的代码压缩为一行代码。布局定义、窗口创建、显示和数据收集都可以用以下代码行编写:

event, values = sg.Window('Window Title', [[sg.Text("What's your name?")],[sg.Input()],[sg.Button('Ok')]]).read(close=True)

将显示相同的窗口,并返回与显示PySimpleGUI程序部分的示例相同的值。能够用这么少的资源做这么多事情,使您能够快速、轻松地将GUI添加到Python代码中。如果您想要显示某些数据并让用户进行选择,可以在一行代码中完成,而不是在一页代码中完成

通过使用速记别名,您可以使用更少的字符来节省更多的代码空间。所有元素都有一个或多个可以使用的较短名称。例如,Text元素可以简单地写为T这个Input元素可以写成I以及Button作为B这样,您的单行窗口代码就变成了:

event, values = sg.Window('Window Title', [[sg.T("What's your name?")],[sg.I()],[sg.B('Ok')]]).read(close=True)

代码可移植性

PySimpleGUI目前能够在4个Python GUI框架上运行。使用IMPORT语句指定要使用的框架。更改导入,您将更改底层GUI框架。对于某些程序,只需更改import语句即可在不同的GUI框架上运行。在上面的示例中,将导入从PySimpleGUIPySimpleGUIQtPySimpleGUIWxPySimpleGUIWeb将会改变框架

导入语句 结果窗口
PySimpleGUI
PySimpleGUIQt
PySimpleGUIWx
PySimpleGUIWeb

将GUI代码从一个框架移植到另一个框架(例如,将代码从tkinter移植到Qt)通常需要重写代码。PySimpleGUI旨在使您能够轻松地在框架之间移动。有时需要进行一些更改,但目标是以最少的更改获得高度可移植的代码

有些功能(如系统托盘图标)并非在所有端口上都可用。系统托盘图标功能在Qt和WxPython端口上可用。在tkinter上有一个模拟版本。PySimpleGUIWeb端口中不支持系统托盘图标

运行时环境

环境 支持
python Python 3.4+
操作系统 Windows、Linux、Mac
硬件 台式PC、笔记本电脑、Raspberry PI、运行PyDroid3的Android设备
在线 repli.it、Trin ket.com(两者都在浏览器中运行tkinter)
GUI框架 tkinter、pyside 2、WxPython、Remi

集成

在200多个“演示程序”中,您可以找到如何将许多流行的Python包集成到您的GUI中的示例

想要将Matplotlib绘图嵌入到您的窗口中吗?没问题,复制演示代码,立即将您的梦想的Matplotlib绘图放到您的GUI中

这些软件包和更多软件包已准备好放入您的GUI中,因为每个软件包都有演示程序或演示回放:

套餐 描述
Matplotlib 多种类型的图表和曲线图
OpenCV 计算机视觉(通常用于人工智能)
VLC 视频播放
金丝雀 物理引擎
Psutil(伪装) 系统环境统计信息
对虾 Reddit API
JSON PySimpleGUI包装了一个特殊的API来存储“用户设置”
天气 集成多个天气API,制作天气应用程序
米多 MIDI播放
美味的汤 Web抓取(GitHub问题观察器示例)

正在安装💾

安装PySimpleGUI的两种常见方式:

  1. 要从PyPI安装的PIP
  2. 下载文件PySimpleGUI.py并将其放入应用程序的文件夹中

PIP安装和升级

当前建议的调用pip命令的方法是使用Python将其作为模块运行。以前的命令是pippip3是直接放到命令行/shell上的。建议的方式

Windows的初始安装:

python -m pip install PySimpleGUI

Linux和MacOS的初始安装:

python3 -m pip install PySimpleGUI

要使用升级,请执行以下操作pip,您只需向该行添加2个参数--upgrade --no-cache-dir

Windows上的升级安装:

python -m pip install --upgrade --no-cache-dir PySimpleGUI

Linux和MacOS升级:

python3 -m pip install --upgrade --no-cache-dir PySimpleGUI

单文件安装

PySimpleGUI被创建为一个单独的.py文件,因此您可以非常容易地安装它,即使是在不像Raspberry PI那样没有连接到互联网的系统上也是如此。只需将PySimpleGUI.py文件放在与导入它的应用程序相同的文件夹中即可。Python在执行导入时将使用您的本地副本

仅使用.py文件进行安装时,您可以从PyPI获取该文件,或者如果要运行最新的未发布版本,则可以从GitHub下载该文件

要从PyPI安装,请下载控制盘或.gz文件并解压缩该文件。如果将.whl文件重命名为.zip,则可以像打开任何普通zip文件一样打开它。您将在其中一个文件夹中找到PySimpleGUI.py文件。将此文件复制到应用程序的文件夹中,即可完成

PySimpleGUI的tkinter版本的PyPI链接为:https://pypi.org/project/PySimpleGUI/#files

GitHub回购的最新版本可在此处找到:https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/PySimpleGUI.py

现在你们中的一些人在想,“是的,但是,等等,拥有一个巨大的源文件是一个糟糕的想法”。而且,是的,有时候这可能是个糟糕的主意。在这种情况下,好处远远大于坏处。计算机科学中的许多概念都是权衡或主观的。正如一些人所希望的那样,并不是一切都是黑白分明的。很多时候,问题的答案是“视情况而定”。

画廊🎨

用户提交的GUI以及在GitHub上找到的图形用户界面的更正式图库的工作正在进行中,但在撰写本文时还没有完成。目前有2个地方可以集中查看截图。希望维基或其他机制能够很快发布,以公正地对待人们正在进行的令人惊叹的创作

用户提交的库

第一个是一个user submitted screenshots issue位于GitHub上。这是人们炫耀他们所做的东西的一种非正式方式。这不是很理想,但这是一个开始

海量擦除的GitHub图像

第二个是一个massive gallery of over 3,000 images摘自GitHub上据称使用PySimpleGUI的1000个项目。它没有经过手动过滤,而且有很多早期文档中使用的旧屏幕截图。但是,你可能会在那里发现一些能激发你想象力的东西


PySimpleGUI的用法🔨

以下各节展示了PySimpleGUI的一小部分用法。仅在GitHub上就有1000多个项目使用PySimpleGUI。真正令人惊讶的是,为这么多人打开了这样多的可能性。许多用户谈到以前尝试用Python创建GUI都失败了,但是当他们尝试PySimpleGUI时最终实现了他们的梦想

您的第一个GUI

当然,PySimpleGUI最好的用法之一就是让您为Python项目制作GUI。您可以从请求文件名这样的小操作开始。为此,您只需要对一个名为的“高级函数”进行一次调用popup有各种各样的弹出窗口,有些会收集信息

popup在其自身上会生成一个窗口来显示信息。您可以像打印一样传递多个参数。如果您想要获取信息,那么您将调用以popup_get_比如popup_get_filename

添加一行来获取文件名,而不是在命令行上指定文件名,可以将您的程序转换为“普通人”会感到舒服的程序

import PySimpleGUI as sg

filename = sg.popup_get_file('Enter the file you wish to process')
sg.popup('You entered', filename)

此代码将显示2个弹出窗口。一个用于获取文件名,该文件名可以浏览到输入框或粘贴到输入框中

另一个窗口将输出收集到的内容

雨量计式窗户

GUI框架的默认设置往往不会产生最美观的窗口。但是,只要注意一些细节,就可以做几件事来使窗口看起来很吸引人。PySimpleGUI使操作颜色和功能(如删除标题栏)变得更容易。其结果是,窗口看起来与典型的tkinter窗口不同

下面是一个示例,说明如何创建与Windows中典型的tkinter不同的窗口。在本例中,窗口的标题栏被删除。其结果是,窗口看起来与使用Raineter(桌面小部件程序)时发现的窗口非常相似

您还可以轻松地设置窗口的透明度。下面是相同Raineter样式的更多桌面小部件示例。有些是暗淡的,因为它们是半透明的。

这两种效果(移除标题栏和使窗口半透明)都是通过在创建窗口时设置两个参数来实现的。这是一个PySimpleGUI如何支持轻松访问功能的示例。因为PySimpleGUI代码可以跨GUI框架移植,所以这些相同的参数也适用于其他端口,如Qt

将示例1中的窗口创建调用更改为此行代码会生成类似的半透明窗口:

window = sg.Window('My window', layout, no_titlebar=True, alpha_channel=0.5)

游戏

虽然没有专门编写为游戏开发SDK,但PySimpleGUI使某些游戏的开发变得相当容易

这个象棋程序不仅下棋,而且还集成了Stockfish下棋人工智能

用户已经发布了几个版本的扫雷器

纸牌游戏可以很好地与PySimpleGUI配合使用,因为使用PySimpleGUI操作图像非常简单Graph元素

虽然没有专门编写为游戏开发SDK,但PySimpleGUI使某些游戏的开发变得相当容易

媒体捕获和播放

在GUI中捕获和显示网络摄像头中的视频只需要4行PySimpleGUI代码。更令人印象深刻的是,这4行代码可以与tkinter、qt和Web端口配合使用。您可以使用与使用tkinter显示图像相同的代码在浏览器中实时显示您的网络摄像头。

媒体播放,音频和视频,也可以使用VLC播放器实现。我们为您提供了一个演示应用程序,这样您就可以从一个可操作的示例开始。您在本自述中看到的所有内容都可以作为您自己创作的起点

人工智能

当AI和Python组合在一起时,它们长期以来一直是公认的超级大国。然而,经常缺少的是一种让用户使用GUI熟悉地与这些人工智能算法交互的方式

这些YOLO演示是一个很好的例子,说明了GUI如何在与AI算法的交互中产生巨大的差异。请注意这些窗口底部的两个滑块。这两个滑块更改了YOLO算法使用的几个参数

如果您仅使用命令行调整YOLO演示,则需要在启动应用程序时设置参数一次,查看它们的执行情况、停止应用程序、更改参数,最后使用新参数重新启动应用程序

将这些步骤与使用GUI可以完成的操作进行对比。GUI使您能够实时修改这些参数。您可以立即获得有关它们如何影响算法的反馈

有这么多已经发布的人工智能程序是命令行驱动的。这本身并不是一个巨大的障碍,但是要在命令行上键入/粘贴您想要着色的文件名,运行程序,然后在文件查看器中打开结果输出文件,这已经够“屁股痛”了

图形用户界面有能力改变用户体验,以填补“图形用户界面空白”。在此着色器示例中,用户只需提供一个装满图像的文件夹,然后单击图像即可上色并显示结果

进行着色的程序/算法是免费提供的,随时可以使用。缺少的是GUI可能带来的易用性


作图

使用PySimpleGUI,在GUI中显示数据和与数据交互非常简单。您有几个选择

您可以使用内置的绘图/绘图功能来生成自定义图形。此CPU使用情况监视器使用Graph元素

Matplotlib是Python用户的热门选择。PySimpleGUI可以让您将Matplotlib图形直接嵌入到GUI窗口中。如果您想保留Matplotlib交互功能,甚至可以将交互控件嵌入到您的窗口中

使用PySimpleGUI的颜色主题,您可以生成比大多数人在Matplotlib中创建的默认图表高一个档次的图表


前端

前面提到的“GUI差距”可以使用PySimpleGUI轻松解决。您甚至不需要拥有要添加GUI的程序的源代码。“前端”GUI是一种收集信息,然后将这些信息传递给命令行应用程序的图形用户界面

对于程序员来说,前端GUI是分发用户以前不愿使用的应用程序的绝佳方式,因为他们在使用命令行界面时感到不舒服。对于您无权访问其源代码的命令行程序,这些GUI是您唯一的选择

此示例是名为“Jump Cutter”的程序的前端。通过GUI收集参数,使用这些参数构造命令行,然后使用命令行程序的输出将命令执行到GUI界面。在此示例中,您可以看到执行的命令为黄色


覆盆子猪

因为PySimpleGUI与Python3.4兼容,所以它能够为您的Raspberry PI项目创建GUI。当它与触摸屏搭配使用时,效果特别好。如果PI没有连接监视器,您还可以使用PySimpleGUIWeb来控制PI


轻松访问高级功能

因为很容易访问许多底层GUI框架的功能,所以可以将各种功能拼凑在一起来创建与直接使用GUI框架生成的应用程序完全不同的应用程序

例如,不能使用tkinter或其他GUI包更改标题栏的颜色/外观,但使用PySimpleGUI可以很容易地创建窗口,就好像它们有一个自定义标题栏一样

令人难以置信的是,这个窗口正在使用tkinter来实现类似于屏幕保护程序的功能。

在windows上,tkinter可以从你的应用程序中完全移除背景。再一次,PySimpleGUI使访问这些功能变得微不足道。创建透明窗口需要向创建Window只需更改一个参数,即可生成具有以下效果的简单应用程序:

您可以通过单击全屏窗口与桌面上的所有内容进行交互


主题

厌倦了默认的灰色图形用户界面吗?PySimpleGUI只需调用theme功能。有150多种不同的颜色主题可供您选择:

对于大多数GUI框架,您必须为您创建的每个小部件指定颜色。PySimpleGUI会自动为元素上色,使其与您选择的主题相匹配

若要使用主题,请调用theme在创建窗口之前使用主题名称函数。您可以添加空格以提高可读性。要将主题设置为“Dark Grey 9”,请执行以下操作:

import PySimpleGUI as sg

sg.theme('dark grey 9')

这一行代码完全更改了窗口的外观:

主题更改了背景、文本、输入背景、输入文本和按钮颜色的颜色。在其他GUI包中,要像这样更改配色方案,您需要单独指定每个小部件的颜色,这需要对代码进行大量更改


支持💪

你的第一站应该是documentationdemo programs如果您还有问题或需要帮助。没问题。您可以免费获得帮助。简单地说file an Issue在PySimpleGUI GitHub资源库上,您将获得帮助

几乎所有的软件公司都有一个随附错误报告的表格。这是一笔不错的交易。填写表格,即可获得免费软件支持。此信息可帮助您有效地获得答案

除了请求PySimpleGUI和底层GUI框架的版本号等信息外,还向您提供了一份可能帮助您解决问题的项目清单

请填写这张表格你可能会觉得这毫无意义。这可能会感到痛苦,尽管只需要片刻的时间。它可以帮助您更快地获得解决方案。如果它不是帮助你快速回复和修复的有用和必要的信息,你就不会被要求填写它。“帮我帮你”

支持

我们非常感谢对该项目的财政支持。老实说,经济上的帮助是需要的。光是开着灯就很贵。域名注册、一长串的订阅、咨询帮助等,很快就会累积成一笔可观的经常性成本

PySimpleGUI的创建成本并不低。虽然这是一项热爱的劳动,但在几年的时间里,它是非常辛苦的,而且相当多的投资被投入,并将继续投入,创造出你今天看到的东西。

PySimpleGUI拥有开放源码许可,如果它能保持这种状态,那就太好了。如果您或您的公司(特别是如果您在公司中使用PySimpleGUI)通过使用PySimpleGUI获得经济利益,则您有能力延长您和其他用户的项目生命周期

给我买咖啡

给我买杯咖啡是公开支持开发者的一种很好的方式。它快速、简单,并且您的贡献会被记录下来,这样其他人就可以看到您是PySimpleGUI的支持者。您也可以选择将您的捐赠设置为私人捐赠

GitHub赞助商

这个GitHub recurring sponsorship就是如何在持续的基础上以不同级别的支持来赞助该项目。它是指有多少开放源码开发者能够获得企业级赞助

我们将非常感谢您在财政上对该项目的帮助。作为一名开放源码开发人员在财务上具有挑战性。YouTube视频创建者能够通过制作视频谋生。对于开源开发人员来说,这并不容易

谢谢你的谢谢

对于所有帮助过的人,无论以什么方式,我都非常非常感激

即使花点时间说一句“谢谢”也有帮助,而且你们中的很多人都这么做了。事实上,这是一个令人惊叹的数字。我珍视这些感谢,仅从文字中就能找到灵感。每一条信息都是一种小小的推动。它增加了一点能量,保持了整个项目的势头。我非常感谢所有以任何形式帮助过我的人

贡献👷

虽然PySimpleGUI目前是在开放源码许可下获得许可的,但项目本身的结构类似于专有产品。不接受拉取请求

对您来说,贡献代码的最佳方式之一是编写和发布应用程序。用户从看到其他用户构建的内容中获得灵感。这里有一组您可以执行的简单步骤–创建一个GitHub repo,发布代码,并在repo的自述文件中包含一个屏幕截图。然后回到PySimpleGUI资源库,在第10期或项目的Wiki中发布一个屏幕截图

如果缺少您需要的功能,或者您有要建议的增强功能,那么open an Issue

特别感谢🙏

这个版本的PySimpleGUI自述文件如果没有@M4cs他是一位出色的开发人员,自项目启动以来一直是PySimpleGUI的支持者。@israel-dryer是另一个长期的支持者,他已经编写了几个PySimpleGUI程序,推动了包功能的极限。以色列制造了唯一一艘使用图像作为棋盘的扫雷舰。@jason990420当他发布了第一款使用PySimpleGUI的纸牌游戏(如上图所示),以及第一款使用PySimpleGUI制作的扫雷舰游戏时,许多人都大吃一惊。@Chr0nicT是我合作过的最年轻的项目开发人员。这孩子经常让我吃惊。请求一种功能,比如PySimpleGUI GitHub从错误检查机器人发出的问题,不管涉及到什么技术,它都会简单地发生。我很幸运,我们被介绍认识了。总有一天他会被带走,但在那之前我们都受益于他的才华。日文版的自述文件在以下方面的帮助下得到了极大的改进@okajun35@nngogol对该项目产生了非常大的影响,在最初发布的第一年就参与了PySimpleGUI。他编写了一个设计器,提出了熟悉的窗口[键]查找语法,编写了创建文档的工具,设计了第一组文档字符串,以及使用PySimpleGUI代码本身生成在线文档的工具。如果没有这些人的帮助,PySimpleGUI就不会有今天的成就

使用PySimpleGUI的2200多个GitHub回购也应该得到“谢谢”,因为它是这就是推动这个项目引擎的灵感

隔夜在推特上发帖的海外用户是开始一天PySimpleGUI工作的电光。它们一直是让开发引擎启动并准备好每天运行的正能量源泉。为了表示感谢,本自述文件已翻译为Japanese

你们都是开放源码开发人员所希望的最好的用户社区

©版权所有2021 PySimpleGUI

Machine-learning-course-使用Python语言的💬机器学习课程:

Introduction

本项目的目的是提供一门使用Python进行机器学习的全面而又简单的课程

Motivation

Machine Learning,作为一种工具Artificial Intelligence,是采用最广泛的科学领域之一。已经发表了大量关于机器学习的文献。本项目的目的是提供以下最重要的方面Machine Learning通过介绍一系列简单而全面的教程,您可以使用Python在这个项目中,我们使用了许多不同的众所周知的机器学习框架来构建我们的教程,例如Scikit-learn在本项目中,您将了解到:

  • 机器学习的定义是什么?
  • 它是什么时候开始的,趋势是什么?
  • 什么是机器学习类别和子类别?
  • 最常用的机器学习算法是什么?如何实现它们?

Machine Learning

标题 文档
机器学习导论 Overview

Machine Learning Basics

标题 代码 文档
线性回归 Python Tutorial
适配过高/适配不足 Python Tutorial
正则化 Python Tutorial
交叉验证 Python Tutorial

Supervised learning

标题 代码 文档
决策树 Python Tutorial
K-近邻 Python Tutorial
朴素贝叶斯 Python Tutorial
Logistic回归 Python Tutorial
支持向量机 Python Tutorial

Unsupervised learning

标题 代码 文档
群集 Python Tutorial
主成分分析 Python Tutorial

Deep Learning

标题 代码 文档
神经网络概述 Python Tutorial
卷积神经网络 Python Tutorial
自动编码器 Python Tutorial
递归神经网络 Python IPython

Pull Request Process

请考虑以下标准,以便更好地帮助我们:

  1. 拉取请求主要预期为链接建议
  2. 请确保您建议的资源没有过时或损坏
  3. 在执行构建和创建拉入请求时,请确保在图层结束之前移除所有安装或构建依赖项
  4. 添加带有接口更改详细信息的注释,包括新的环境变量、暴露的端口、有用的文件位置和容器参数
  5. 一旦您获得至少一个其他开发人员的签字,您就可以合并拉取请求,或者如果您没有权限这样做,如果您相信所有检查都已通过,您可以请求所有者为您合并该请求

Final Note

我们期待着您的善意反馈。请帮助我们改进这个开源项目,让我们的工作做得更好。对于捐款,请创建拉取请求,我们会立即进行调查。再次感谢您的反馈和支持

Developers

创建者:机器学习思维模式[BlogGitHubTwitter]

主管:Amirsina Torfi[GitHubPersonal WebsiteLinkedin]

开发商:Brendan Sherman*,James E Hopkins*[Linkedin],扎克·史密斯[Linkedin]

注意事项:本项目已被开发为顶峰项目,由[CS 4624 Multimedia/ Hypertext course at Virginia Tech],并由[Machine Learning Mindset]

*:平均分担

Citation

如果您觉得本课程有用,请考虑引用如下内容:

@software{amirsina_torfi_2019_3585763,
  author       = {Amirsina Torfi and
                  Brendan Sherman and
                  Jay Hopkins and
                  Eric Wynn and
                  hokie45 and
                  Frederik De Bleser and
                  李明岳 and
                  Samuel Husso and
                  Alain},
  title        = {{machinelearningmindset/machine-learning-course:
                   Machine Learning with Python}},
  month        = dec,
  year         = 2019,
  publisher    = {Zenodo},
  version      = {1.0},
  doi          = {10.5281/zenodo.3585763},
  url          = {https://doi.org/10.5281/zenodo.3585763}
}