Tag: python

在Python的中线评论?

我想知道是否有任何方法来评论一部分的行,就像你可以在c ++中用/*this*/ 。 我所知道的唯一的评论是# this总是走到行的末尾和"""these""" ,这是不行的。 示例用例:使用subprocess并需要临时注释掉列表中的参数-p 0 : ['../some/guy', '-m', '10', '-p', '0', '-n', '100', '-f', '/dev/stdout'] 有一个键盘快捷键来注释一个select,现在我只是复制整行如下 #['../some/guy', '-m', '10', '-p', '0', '-n', '100', '-f', '/dev/stdout'] ['../some/guy', '-m', '10', '-n', '100', '-f', '/dev/stdout'] 我期待着一个大胖子“不”,但我认为这并不是什么难事,python让我感到惊讶了几次。

在iPython笔记本中debugging的正确方法是什么?

据我所知,%debugging魔术可以在一个单元格内进行debugging。 但是,我有跨多个单元格的函数调用。 例如, In[1]: def fun1(a) def fun2(b) # I want to set a breakpoint for the following line # return do_some_thing_about(b) return fun2(a) In[2]: import multiprocessing as mp pool=mp.Pool(processes=2) results=pool.map(fun1, 1.0) pool.close() pool.join 我试过的: 我试图在cell-1的第一行设置%debug。 但即使在执行cell-2之前,它立即进入debugging模式。 我试图在代码“return do_some_thing_about(b)”之前的行中添加%debug。 但是,代码永远运行,从来没有停止。 在ipython笔记本中设置断点的正确方法是什么?

用Cython简单的包装C代码

我有一些C函数,我想从Python中调用它们。 cython似乎是要走的路,但我不能真正find一个这样做的例子。 我的C函数看起来像这样: void calculate_daily ( char *db_name, int grid_id, int year, double *dtmp, double *dtmn, double *dtmx, double *dprec, double *ddtr, double *dayl, double *dpet, double *dpar ) ; 我只想指定前三个参数(一个string和两个整数),然后恢复8个numpy数组(或python列表,所有双数组都有N个元素)。 我的代码假定指针指向已经分配的内存块。 另外,生成的C代码应该链接到一些外部库。

禁用Tensorflowdebugging信息

通过debugging信息,我的意思是什么TensorFlow显示在我的terminal有关加载库和发现设备等不是python错误。 I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcurand.so locally I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:900] successful NUMA node read from SysFS had negative value (-1), but there […]

我怎样才能在matplotlib中创build一个空白的子图?

我正在matplotlib中制作一组子图(比如说3 x 2),但是我有less于6个数据集。 我怎样才能使剩余的子空间为空? 这个安排看起来像这样: +—-+—-+ | 0,0| 0,1| +—-+—-+ | 1,0| 1,1| +—-+—-+ | 2,0| 2,1| +—-+—-+ 这可能会持续多个页面,但在最后一页,例如,2,1框中的5个数据集将是空的。 不过,我已经宣布这个数字为: cfig,ax = plt.subplots(3,2) 所以在子图2,1的空间中有一个默认的带有刻度和标签的坐标轴。 我怎样才能以编程的方式渲染这个空间,并没有轴?

gevent在Ubuntu上没有正确安装

我想试用gevent ,但安装后我不能加载任何gevent模块。 安装步骤是: sudo apt-get install libevent-dev sudo pip install greenlet sudo pip install gevent 环境设置是Ubuntu 10.10 x86_64 GNU / Linux。 当我尝试做一个简单的testing时,我得到: >>> import gevent >>> from gevent import socket Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name socket 我怀疑安装没有做它应该,但我不知道什么错。

否定列表索引?

可能重复: 解释切片符号 我试图了解下面的一段代码: # node list n = [] for i in xrange(1, numnodes + 1): tmp = session.newobject(); n.append(tmp) link(n[0], n[-1]) 具体来说,我不明白索引-1是指什么。 如果索引0指向第一个元素,那么-1是指什么?

python循环再次导入(又名这个devise有什么问题)

让我们考虑python(3.x)脚本: main.py: from test.team import team from test.user import user if __name__ == '__main__': u = user() t = team() u.setTeam(t) t.setLeader(u) testing/ user.py: from test.team import team class user: def setTeam(self, t): if issubclass(t, team.__class__): self.team = t testing/ team.py: from test.user import user class team: def setLeader(self, u): if issubclass(u, user.__class__): self.leader = […]

在Python中提高超大字典的性能

我发现,如果我在开头初始化一个空字典,然后在for循环中添加元素到字典中(大约110,000个键,每个键的值是一个列表,循环中也增加),速度降低为for循环去。 我怀疑问题是,字典在初始化时并不知道密钥的数量,而且它并没有做一些非常聪明的事情,所以也许存储冲突变得相当频繁,并且速度变慢了。 如果我知道键的数量,确切地说是那些键,是否有任何方式在Python中使字典(或哈希表)更有效地工作? 我隐约记得,如果你知道密钥,你可以巧妙地devise哈希函数(完美哈希?),并预先分配空间。

Python中While循环中的赋值?

我刚刚遇到这段代码 while 1: line = data.readline() if not line: break #… 并认为, 一定有一个更好的方法来做到这一点,而不是使用一个有break的无限循环。 所以我试了一下: while line = data.readline(): #… 显然,有一个错误。 有没有办法避免在这种情况下break ? 编辑: 理想情况下,你要避免说两次readline …恕我直言,重复是甚至更糟糕,特别是如果声明是复杂的。