组合数学的pythonic包

combi的Python项目详细描述


combi是一个用于combinatorics的pythonic包。

combi允许您探索permutationscombinations的空间,就像它们 是python序列,但没有生成所有的排列/组合 提前。它允许您在这些空间上指定许多特殊条件。它 还提供了一些在组合学中可能有用的类。 编程。

组合文档:https://combi.readthedocs.org/en/stable/

github上的combi:https://github.com/cool-RR/combi

pypi上的combi:https://pypi.python.org/pypi/combi

变更日志:https://combi.readthedocs.org/en/stable/changelog.html

基本用法

使用PermSpace创建置换空间:

>>>fromcombiimport*>>>perm_space=PermSpace('meow')

它的行为就像一个序列:

>>>len(perm_space)24>>>perm_space[7]<Perm:('e','m','w','o')>>>>perm_space.index('mowe')3

然而,排列是按需创建的,而不是提前创建的。

使用CombSpace创建一个组合空间,其中order不 问题:

>>>comb_space=CombSpace(('vanilla','chocolate','strawberry'),2)>>>comb_space<CombSpace:('vanilla','chocolate','strawberry'),n_elements=2>>>>comb_space[2]<Comb,n_elements=2:('chocolate','strawberry')>>>>len(comb_space)3

有关详细信息,try the tutorial或参见documentation contents

功能

  • PermSpace允许您探索排列空间,就像它是 python序列。
    • 置换是按需生成的,因此巨大的置换空间可以是 无需占用大量内存即可轻松创建。
    • PermSpace会注意到序列中是否有重复的元素, 并将所有具有相同价值的事件视为可交换的,而不是 创建冗余排列。
    • 可以指定自定义域,而不只是使用索引号。
    • 您可以指定一些要修复的元素,以便它们指向相同的 所有排列中的值。(用于将实验限制为子集 原始置换空间的。)
    • 置换空间可以限制在一定程度的置换。(一) 置换的次数是进行置换所需的变换次数。)
    • k-permutations受支持。
    • 您可以为生成的排列指定自定义类型,以便 在它们上实现您自己的功能。
  • CombSpace允许您探索组合空间,就像它是 python序列。
  • MapSpace就像python的内置map,除了它是 允许索引访问的序列。
  • ProductSpace类似于python的itertools.product,除了 这是一个允许索引访问的序列。
  • ChainSpace类似于python的itertools.chain,除了 这是一个允许索引访问的序列。
  • SelectionSpace是序列中所有选择的空间 可能的长度。
  • Bag类是一个类似于python的collections.Counter的多集,除了 它提供了更多的功能,比如更多的arithmetic operations between bagscomparison between bags,等等。(它能做到这一点是因为 python的collections.Counter,它只允许将自然数作为键。)
  • 提供了类FrozenBagOrderedBagFrozenOrderedBag, 它们是Bag上的变体。

要求

安装

使用pip安装combi:

$ pip install combi

社区

github上的combi:https://github.com/cool-RR/combi请随意叉送 拉请求!

有三个Combi组,也称为邮件列表:


康比是拉姆·拉彻姆创造的。我提供 Development services in Python and Django

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将getAttribute()scriptlet重写为JSP/HTML中的JSTL?   java接口,用于在KeyClope中执行电子邮件操作   java我试图将今天的日期添加到我的对象,但构造函数有问题   关于生成示例图表示(RDF或VEV元组)的java建议   httpclient在Java中使用空格编码URL的工作方式不正确   java NDimensional点类   java在编写查找ArrayList中最大整数索引的方法时遇到问题   java生成对象并放入arraylist,无重复项   在Java中使用泛型   在Java中使用“h=Math.min(h,h)”有什么逻辑原因吗?   安卓 Java for loop总是返回true   覆盖率java工具   java试图发送int时出现“空对象引用”错误