小编Reb*_*que的帖子

如何在Jupyter中显示完整输出,不仅仅是最后的结果?

我希望Jupyter能够打印所有交互式输出而不需要打印,而不仅仅是最后的结果.怎么做?

示例:

a=3
a
a+1
Run Code Online (Sandbox Code Playgroud)

我想展示

3
4

python ipython jupyter

80
推荐指数
4
解决办法
5万
查看次数

找到贯穿大多数点的直线的最有效算法是什么?

问题:

在2维平面上给出N个点.同一条直线上的最大点数是多少?

问题有O(N 2)解决方案:遍历每个点并找到dx / dy与当前点相关的点数.将dx / dy关系存储在哈希映射中以提高效率.

有没有比O(N 2)更好的解决这个问题的方法?

algorithm geometry computational-geometry

47
推荐指数
2
解决办法
2万
查看次数

如何用matplotlib画一条线?

我找不到用matplotlibPython库绘制任意行的方法.它允许绘制水平线和垂直线(与matplotlib.pyplot.axhlinematplotlib.pyplot.axvline,例如),但我没有看到如何通过两个特定点划一条线(x1, y1)(x2, y2).有办法吗?有一个简单的方法吗?

python matplotlib python-3.x

37
推荐指数
4
解决办法
11万
查看次数

找到一个点位于点云的凸包中的有效方法是什么?

我在numpy中有一个坐标点云.对于大量的点,我想知道点是否位于点云的凸包中.

我尝试了pyhull,但我无法弄清楚如何检查点是否在ConvexHull:

hull = ConvexHull(np.array([(1, 2), (3, 4), (3, 6)]))
for s in hull.simplices:
    s.in_simplex(np.array([2, 3]))
Run Code Online (Sandbox Code Playgroud)

引发LinAlgError:数组必须是正方形.

python numpy convex-hull

36
推荐指数
9
解决办法
3万
查看次数

用于Python的CPU Flame图

Brendan Gregg的CPU Flame Graph是一种基于调用堆栈在一段时间内可视化CPU使用情况的方法.

他的FlameGraph github项目提供了一种与语言无关的绘制这些图形的方法:

对于每种语言,FlameGraph都需要一种以如下行的形式提供堆栈输入的方法:

grandparent_func;parent_func;func 42
Run Code Online (Sandbox Code Playgroud)

这意味着检测程序被观察到运行函数func,其中parent_func调用它从顶级函数调用grandparent_func.它说调用堆栈被观察了42次.

如何从Python程序中收集堆栈信息并将其提供给FlameGraph?

对于奖励积分:如何扩展以便显示C和Python堆栈,甚至是Linux上的内核(与Brendan网站上的某些Java和node.js火焰图类似)?

在此输入图像描述

c python performance visualization linux-kernel

28
推荐指数
1
解决办法
1929
查看次数

关于条件表达式的语句

遵循"武士原则",我试图在我的功能上做这个,但似乎是错的......

return <value> if <bool> else raise <exception>
Run Code Online (Sandbox Code Playgroud)

有没有其他"美丽"的方式来做到这一点?谢谢

python conditional exception raise zen-of-python

23
推荐指数
2
解决办法
1万
查看次数

给定排列的词典编号,是否可以在O(1)中获取其中的任何项目

我想知道下面解释的任务是否在理论上是可行的,如果是这样,我怎么能做到.

给你一个N元素空间(即0和之间的所有数字N-1.)让我们看看那个空间上所有排列的空间,然后调用它S.可以标记的i第th个成员是带有词典编号的排列.SS[i]i

例如,如果N是3,那么S这个排列列表是:

S[0]: 0, 1, 2
S[1]: 0, 2, 1
S[2]: 1, 0, 2
S[3]: 1, 2, 0
S[4]: 2, 0, 1
S[5]: 2, 1, 0
Run Code Online (Sandbox Code Playgroud)

(当然,当看到一个大的时候N,这个空间变得非常大,N!确切地说.)

现在,我已经知道如何通过其索引号来获得排列i,并且我已经知道如何反转(得到给定排列的词典编号.)但我想要更好的东西.

一些排列本身可能很大.例如,如果你正在看N=10^20.(的大小S将是(10^20)!我相信这是我在一个堆栈溢出问题提起过的最大号:)

如果你只是在那个空间上看一个随机的排列,那么你将无法将整个东西存储在你的硬盘上,更不用说通过词典编号来计算每个项目了.我想要的是能够对该排列进行项目访问,并获得每个项目的索引.也就是说,给定Ni指定一个排列,有一个函数接受一个索引号并找到该索引中的数字,另一个函数接受一个数字并找到它所在的索引.我想这样做O(1),所以我不需要在排列中存储或迭代每个成员.

你说疯了吗?不可能?那可能.但请考虑一下:像AES这样的分组密码本质上是一种排列,它几乎完成了我上面概述的任务.AES具有16个字节的块大小,这意味着N256^16它是围绕10^38.(S重要的是,它的大小是一个惊人的(256^16)!,或者说是围绕着10^85070591730234615865843651857942052838 …

encryption algorithm permutation combinatorics number-theory

22
推荐指数
2
解决办法
1175
查看次数

共享的python生成器

我正在尝试使用Python生成器重现反应式扩展“共享”的可观察概念。

假设我有一个API,可以让我像这样使用无限流:

def my_generator():
    for elem in the_infinite_stream():
        yield elem
Run Code Online (Sandbox Code Playgroud)

我可以多次使用此生成器,如下所示:

stream1 = my_generator()
stream2 = my_generator()
Run Code Online (Sandbox Code Playgroud)

并且the_infinite_stream()将被调用两次(每个生成器一次)。

现在说这the_infinite_stream()是一项昂贵的手术。有没有办法在多个客户端之间“共享”生成器?似乎tee可以做到,但是我必须提前知道我想要多少个独立的生成器。

这个想法是,在其他使用反应性扩展(RxJava,RxSwift)“共享”流的语言(Java,Swift)中,我可以方便地在客户端上复制该流。我想知道如何在Python中做到这一点。

注意:我正在使用asyncio

python generator python-asyncio

19
推荐指数
1
解决办法
637
查看次数

Python 3.7:Dataclasses和SimpleNameSpace的实用程序

Python 3.7提供了dataclasses具有预定义特殊功能的新功能.

从全局来看,dataclassesSimpleNameSpace都提供了很好的数据封装工厂.

@dataclass
class MyData:
    name:str
    age: int

data_1 = MyData(name = 'JohnDoe' , age = 23)

data_2 = SimpleNameSpace(name = 'JohnDoe' , age = 23)
Run Code Online (Sandbox Code Playgroud)

很多时候我SimpleNameSpace只是用来包装数据并移动它.

我甚至将它子类化为添加特殊功能:

from types import SimpleNameSpace

class NewSimpleNameSpace(SimpleNameSpace):
    def __hash__(self):
        return some_hashing_func(self.__dict__)
Run Code Online (Sandbox Code Playgroud)

对于我的问题:

  1. 有人如何选择SimpleNameSpacedataclasses
  2. 为什么它们是必要的,当扩展时可以达到同样的效果SimpleNameSpace
  3. 所有其他用例dataclasses迎合什么?

python python-3.7 python-dataclasses

17
推荐指数
2
解决办法
1517
查看次数

类的实例使用什么资源?

How efficient is python (cpython I guess) when allocating resources for a newly created instance of a class? I have a situation where I will need to instantiate a node class millions of times to make a tree structure. Each of the node objects should be lightweight, just containing a few numbers and references to parent and child nodes.

For example, will python need to allocate memory for all the "double underscore" properties of each instantiated object (e.g. the docstrings, …

python memory-management cpython class instance

14
推荐指数
4
解决办法
500
查看次数