这是非常愚蠢的方式: def divisorGenerator(n): for i in xrange(1,n/2+1): if n%i == 0: yield i yield n 我想得到的结果是类似于这个,但我想要一个更聪明的algorithm(这一个是太慢,愚蠢的:-) 我可以快速find主要因素和多样性。 我有一个生成器,以这种方式生成的因素: (factor1,multiplicity1) (因子2,重数2) (factor3,multiplicity3) 等等… 即输出 for i in factorGenerator(100): print i 是: (2, 2) (5, 2) 我不知道这对于我想要做的事有多大用处(我把它编码为其他问题),无论如何,我想要一个更聪明的方法 for i in divisorGen(100): print i 输出这个: 1 2 4 5 10 20 25 50 100 更新:非常感谢格雷格Hewgill和他的“聪明的方式”:)计算1亿的所有因数花了0.01s与他的方式反对39愚蠢的方式在我的机器上,非常酷:D 更新2:停止说这是这个职位的重复。 计算给定数字的除数不需要计算所有除数。 这是一个不同的问题,如果你认为它不是那么在维基百科上寻找“除数函数”。 […]
我试图通过networking连接(使用asyncore)传输一个函数。 是否有一个简单的方法来序列化一个Python函数(至less在这种情况下,将不会有副作用)的传输? 我最好喜欢有一对类似于这些function: def transmit(func): obj = pickle.dumps(func) [send obj across the network] def receive(): [receive obj from the network] func = pickle.loads(s) func()
我有一个字典,看起来像这样: di = {1: "A", 2: "B"} 我想将其应用于类似于以下内容的dataframe的“col1”列: col1 col2 0 wa 1 1 2 2 2 NaN 要得到: col1 col2 0 wa 1 A 2 2 B NaN 我怎么能最好的做到这一点? 出于某种原因,与此相关的Googlesearch条款仅向我显示了有关如何从字典创build列的链接,反之亦然: – /
我需要一些关于声明正则expression式的帮助。 我的input如下所示: this is a paragraph with<[1> in between</[1> and then there are cases … where the<[99> number ranges from 1-100</[99>. and there are many other lines in the txt files with<[3> such tags </[3> 所需的输出是: this is a paragraph with in between and then there are cases … where the number ranges from 1-100. […]
你如何在Python中发送和接收UDP多播? 有没有一个标准的图书馆这样做?
该文档展示了如何在输出列名称作为关键字的情况下,使用dict一次对groupby对象应用多个函数: In [563]: grouped['D'].agg({'result1' : np.sum, …..: 'result2' : np.mean}) …..: Out[563]: result2 result1 A bar -0.579846 -1.739537 foo -0.280588 -1.402938 但是,这只适用于系列groupby对象。 而且当一个字典同样通过DataFrame传递给一个组时,它期望这个键是该函数将被应用到的列名。 我想要做的是将多个函数应用于多个列(但某些列将被多次操作)。 此外, 一些函数将取决于groupby对象中的其他列 (如sumif函数)。 我目前的解决scheme是逐列,并执行类似上面的代码,使用lambdas函数依赖于其他行。 但是这需要很长时间(我认为遍历groupby对象需要很长时间)。 我将不得不改变它,这样我遍历整个groupby对象在一次运行,但我想知道是否有一个在pandas内置的方式做到这一点干净。 例如,我试过类似的东西 grouped.agg({'C_sum' : lambda x: x['C'].sum(), 'C_std': lambda x: x['C'].std(), 'D_sum' : lambda x: x['D'].sum()}, 'D_sumifC3': lambda x: x['D'][x['C'] == 3].sum(), …) 但正如所料,我得到一个KeyError(因为如果从DataFrame调用agg ,键必须是一个列)。 是否有任何内置的方法来做我想做的事情,或者可能会添加这个function,或者我只需要手动遍历groupby? […]
我正在使用Python与-c来执行一个单线循环,即: $ python -c "for r in range(10): print 'rob'" 这工作正常。 但是,如果我在for循环之前导入模块,则会出现语法错误: $ python -c "import sys; for r in range(10): print 'rob'" File "<string>", line 1 import sys; for r in range(10): print 'rob' ^ SyntaxError: invalid syntax 任何想法如何可以解决? 把它作为一个单行程序,这样我就可以把它包含在一个Makefile中,这一点很重要。
我更喜欢使用Notepad ++进行开发, 如何通过Notepad ++在Python中执行文件?
我需要完成以下任务: 从: a = array([[1,3,4],[1,2,3]…[1,2,1]]) (每行添加一个元素)到: a = array([[1,3,4,x],[1,2,3,x]…[1,2,1,x]]) 我已经尝试做像[n] =数组([1,3,4,x])的东西 但是大块头抱怨形状不匹配。 我尝试迭代通过a和附加元素x到每个项目,但更改不反映。 任何想法,我怎么能做到这一点?
如何在Python中将svg转换为png ? 我将svg存储在一个StringIO的实例中。 我应该使用pyCairo库吗? 我如何编写代码?