Tag: python

使用SciPy或NumPy生成具有指定权重的离散随机variables

我正在寻找一个简单的函数,可以根据它们相应的(也是指定的)概率生成一个指定的随机值数组。 我只需要它来生成浮点值,但我不明白为什么它不应该能够产生任何标量。 我可以从现有的function中想到很多构build这个function的方法,但我想我可能只是错过了一个明显的SciPy或NumPyfunction。 例如: >>> values = [1.1, 2.2, 3.3] >>> probabilities = [0.2, 0.5, 0.3] >>> print some_function(values, probabilities, size=10) (2.2, 1.1, 3.3, 3.3, 2.2, 2.2, 1.1, 2.2, 3.3, 2.2) 注:我发现scipy.stats.rv_discrete,但我不明白它是如何工作的。 具体而言,我不明白这(下面)意味着什么,也不应该做什么: numargs = generic.numargs [ <shape(s)> ] = ['Replace with resonable value', ]*numargs 如果rv_discrete是我应该使用的,请给我一个简单的例子和​​上面的“形状”的说明解释?

如何从脚本运行IPython魔术(或计时Python脚本)

IPython%timeit magic命令在测量运行一些Python代码所需的时间方面做得很好。 现在,我想在Python脚本中使用类似的东西。 我知道timeit模块,但是,它有几个缺点,例如,如何自适应select运行次数? 即默认的代码 import timeit t=timeit.Timer("code(f)", "from __main__ import code,f") t.timeit() 运行代码百万次。 %timeit IPyhton magic命令会自动执行。 我build议我可以使用类似MATLAB的代码http://www.mathworks.com/matlabcentral/fileexchange/18798 它自动完成所有的工作(并且还告诉函数的开销是否大)。 如何从Python脚本中调用%timeit魔法(或者有更好的时间解决scheme)?

Python如何简单地将打印输出redirect到TXT文件,并为每个redirect创build一个新行

我search了谷歌,堆栈溢出和我的Python用户指南,并没有find一个简单的,可行的答案的问题,“如何redirect打印到.txt”文件 我在W7x64机器上创build了一个名为goat.txt的文件,并试图在文件中打印“test”。 并尝试了StackOverflow中提供的以下基于upons的示例。 在这一点上,我不想使用日志模块,因为我没有从基于二进制条件的文档创build一个简单的日志。 打印很简单,但redirect的结果并不是很明显。 我已经search了几个小时,没有结果。 一个简单明了的例子,我可以进入我的interperter是最有帮助的。 此外,任何build议的信息网站赞赏(而不是pydocs,就像我在埃斯孔迪多港阵容采取了一个奇怪的冲浪者,并回答“看波”当被问及“什么时候划船”)。 #import sys #print('test', file=open('C:\\goat.txt', 'w')) fails #print(arg, file=open('fname', 'w')) above based upon this #print>>destination, arg #print>> C:\\goat.txt, "test" Fails based upon the above

Python如何一次读取N行

我正在写一个代码,一次获取一个巨大的文本文件(几GB)N行,处理该批处理,并移动到下一个N行,直到完成整个文件。 (我不在乎最后一批是不是完美的大小)。 我一直在阅读关于使用itertools islice这个操作。 我想我在这里一半: from itertools import islice N = 16 infile = open("my_very_large_text_file", "r") lines_gen = islice(infile, N) for lines in lines_gen: …process my lines… 麻烦的是,我想处理下一批16行,但我错过了一些东西

使用多处理模块进行集群计算

我有兴趣使用计算机群集来运行Python程序。 我过去一直在使用Python MPI接口,但是由于编译/安装这些接口有困难,我宁愿使用内置模块(如Python的多处理模块)的解决scheme。 我真正想要做的只是build立一个multiprocessing.Pool实例,跨越整个计算机集群,并运行一个Pool.map(…) 。 这是可能的/容易做的事吗? 如果这是不可能的,我希望至less能够从每个节点的不同参数的中央脚本启动任何节点上的Process实例。

使用Pandas处理可变数量的列 – Python

我有一个看起来像这样的数据集(最多5列 – 但可以更less) 1,2,3 1,2,3,4 1,2,3,4,5 1,2 1,2,3,4 …. 我正在尝试使用pandasread_table将其读入5列数据框。 我想阅读这个在没有额外的按摩。 如果我尝试 import pandas as pd my_cols=['A','B','C','D','E'] my_df=pd.read_table(path,sep=',',header=None,names=my_cols) 我得到一个错误 – “列名有5个字段,数据有3个字段”。 在读取数据的同时,有没有办法让pandas填补NaN中缺失的列?

Python中的私人成员

我如何使方法和数据成员在Python中是私有的? 或者Python不支持私有成员?

如何在CSV文件中编写UTF-8

我正在尝试创build一个PyQt4 QTableWidget csv格式的文本文件。 我想用UTF-8编码来编写文本,因为它包含特殊字符。 我使用以下代码: import codecs … myfile = codecs.open(filename, 'w','utf-8') … f = result.table.item(i,c).text() myfile.write(f+";") 它的工作,直到单元格包含一个特殊的字符。 我也试过 myfile = open(filename, 'w') … f = unicode(result.table.item(i,c).text(), "utf-8") 但是当特殊字符出现时也会停止。 我不知道我在做什么错。

在列表parsing和生成器expression式中的产量

下面的行为对我来说似乎相当不合常理(Python 3.4): >>> [(yield i) for i in range(3)] <generator object <listcomp> at 0x0245C148> >>> list([(yield i) for i in range(3)]) [0, 1, 2] >>> list((yield i) for i in range(3)) [0, None, 1, None, 2, None] 最后一行的中间值实际上并不总是None ,它们是我们send到发生器的任何东西,相当于(我猜)到下面的发生器: def f(): for i in range(3): yield (yield i) 这三条线完全可以工作,这让我觉得很有趣。 Reference指出yield只能在函数定义中允许(虽然我可能读错了,或者它可能只是从旧版本复制而来)。 前两行在Python 2.7中产生了一个SyntaxError ,但是第三行没有。 另外,这似乎很奇怪 列表理解返回一个生成器而不是一个列表 […]

如何使用matplotlib设置所有子图的默认颜色循环?

我如何设置matplotlib绘制的图的默认颜色集? 我可以像这样设置一个特定的颜色映射 import numpy as np import matplotlib.pyplot as plt fig=plt.figure(i) ax=plt.gca() colormap = plt.get_cmap('jet') ax.set_color_cycle([colormap(k) for k in np.linspace(0, 1, 10)]) 但有没有办法为所有地块设置相同的颜色,包括子图?