小编pyg*_*iel的帖子

C中的结构,它们有效吗?

我正在读一些像这样的C代码:

double function( int lena,double xa,double ya, double za, double *acoefs, ...,
                 int lenb,double xb,double yb, double zb, double *bcoefs, ...,
                 same for c,
                 same for d )
Run Code Online (Sandbox Code Playgroud)

在函数中调用此函数的次数超过100.000次,因此它的性能至关重要.

我正在尝试扩展此代码,但我想知道它是否有效(以及这会影响速度)将所有参数封装在这样的结构中

struct PGTO { int len; double x,y,z ; double *acoefs }
Run Code Online (Sandbox Code Playgroud)

然后访问函数中的参数.

c performance struct

6
推荐指数
3
解决办法
2767
查看次数

setup.py 添加选项(又名 setup.py --enable-feature )

我正在寻找一种在安装阶段在 python(扩展)模块中包含一些功能的方法。

以实际的方式:

我有一个 python 库,它有 2 个相同函数的实现,一个内部(慢)和一个依赖于外部库(快,在 C 中)。

我希望这个库是可选的,并且可以在编译/安装时使用如下标志激活:

python setup.py install # (it doesn't include the fast library)
python setup.py --enable-fast install
Run Code Online (Sandbox Code Playgroud)

我必须使用 Distutils,但是所有解决方案都被广泛接受!

python packaging distutils

5
推荐指数
0
解决办法
2586
查看次数

开源网站代码

我在php + codeigniter中写了一个小网站(webapp),我真的很想让它成为开源(吸引合作者并获得免费的VCS托管).

  • 这是一个好习惯吗?
  • 这矿安全吗?
  • 哪些是在上传之前更改重要数据的最佳工具?(比如配置文件,其中包含用于测试的数据库名称和密码等.)

php open-source

5
推荐指数
1
解决办法
117
查看次数

Emacs Lisp,如何监视文件/目录的更改

我正在寻找一种方法来定期检查某个目录下的文件是否从上次检查更改(功能符号到FAM守护程序或gio.monitor_directory).在emacs lisp中.

  • 是否有提供此功能的库/代码段?
  • 如果没有,我该如何实现这样的功能?

emacs elisp

5
推荐指数
1
解决办法
1427
查看次数

从lisp(elisp)中的关联列表中弹出元素

我正在寻找一种从关联列表中"弹出"元素的方法,换句话说就是"破坏性"的关联:

(setq alist '((a . 1) (b . 2))
(assoc-pop 'a alist) ;; -> (a . 1)
;; alist -> ((b . 2))
Run Code Online (Sandbox Code Playgroud)

在elisp线束中有任何功能吗?获得symilar功能最优雅的方法是什么?(不确定这种"副作用"是一种很好的做法,即使有可能!)

lisp emacs elisp

5
推荐指数
1
解决办法
460
查看次数

在pyspark中加载比内存hdf5文件更大的文件

我有一个以HDF5格式存储的大文件(例如20 Gb)。该文件基本上是一组随时间变化的3D坐标(分子模拟轨迹)。这基本上是形状的数组(8000 (frames), 50000 (particles), 3 (coordinates))

在普通的python中,我只需要使用for h5py或加载hdf5数据文件,pytables并为该数据文件建立索引,就好像它是一个numpy一样(该库会延迟加载所需的任何数据)。

但是,如果我尝试使用SparkContext.parallelize它在Spark中加载此文件,显然会阻塞内存:

sc.parallelize(data, 10)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?大型数组有首选的数据格式吗?我可以将rdd写入磁盘而不经过内存吗?

python hdf5 apache-spark pyspark

5
推荐指数
1
解决办法
3055
查看次数

类定义中的属性赋值顺序

我想以这种方式定义一个类:

class List(Base):
    hp = Column(int,...)
    name = Column(str,...)
Run Code Online (Sandbox Code Playgroud)

这个类代表一个列表,我可以定义/修改/编码Base和Column类.有一种方法可以知道我定义属性hp/names的顺序吗?例如,我想定义一个可以执行此操作的方法:

l = List()
l.show()
[(hp,16),(name,roger)] # in this order
Run Code Online (Sandbox Code Playgroud)

python

4
推荐指数
1
解决办法
929
查看次数

使用__main__.py分发可执行zip文件,如何访问额外数据?

我正在做一个小程序,我想用这个食谱分发它:

  1. 单目录__main__.py在其中
  2. 压缩此目录并在其上添加一个shebang #!/usr/bin/env python
  3. 让它可执行

问题是在这个包中我还有额外的文件(我使用pygtk工具包,我需要图像和ui xml文件).当我尝试访问这些文件时,我遇到资源不可用的错误(我尝试打开的路径类似于file.zip/gui/gui.ui).

我该如何处理这种情况?

python packaging

4
推荐指数
1
解决办法
1982
查看次数

elisp相当于python shlex.split?

我需要在elisp中解析命令行,例如:

(shlex-split "command \"Some file with spaces\" someother\ quote")
;;That gives ("command" "Some file with spaces" "someother quote")
Run Code Online (Sandbox Code Playgroud)

我怎样才能以简单的方式实现这一目标?

python elisp shlex

4
推荐指数
1
解决办法
170
查看次数

扭曲的反应堆太早停止

我正在做一个批处理脚本来连接到tcp服务器,然后退出.我的问题是我无法阻止反应堆,例如:

cmd = raw_input("Command: ")

# custom factory, the protocol just send a line
reactor.connectTCP(HOST,PORT, CommandClientFactory(cmd) 
d = defer.Deferred()

d.addCallback(lambda x: reactor.stop())    
reactor.callWhenRunning(d.callback,None)
reactor.run()
Run Code Online (Sandbox Code Playgroud)

在此代码中,反应器在完成tcp连接并且传递cmd之前停止.

完成所有操作后,如何停止反应堆?

python networking twisted

3
推荐指数
1
解决办法
1115
查看次数

删除python中html(即unformatting)中标记之间的空格和换行符

一个例子:

<p> Hello</p>
<div>hgello</div>
<pre>
   code
    code
<pre>
Run Code Online (Sandbox Code Playgroud)

变成这样的东西:

<p> Hello</p><div>hgello</div><pre>
    code
     code
<pre>
Run Code Online (Sandbox Code Playgroud)

如何在python中执行此操作?我也大量使用<pre>标签,所以用''替换所有'\n'不是一个选项.

最好的方法是什么?

html python regex

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

在空间中找到比某个值更近的点

在我正在开发的 python 应用程序中,我有一个 3D 点数组(大小在 2 到 100000 之间),我必须找到彼此相距一定距离内的点(比如两个值之间,例如 0.1 和 0.2) . 我需要这个用于图形应用程序,并且此搜索应该非常快(对于 10000 点的样本,大约为 1/10 秒)

作为第一个实验,我尝试使用 scipy.spatial.KDTree.query_pairs 实现,对于 5000 点的样本,返回索引需要 5 秒。您知道任何可能适用于这种特定情况的方法吗?

关于应用程序的更多信息:

这些点代表原子坐标,距离搜索可用于确定原子之间的键。键不一定是固定的,但可能会在每一步发生变化,例如在氢键的情况下。

python algorithm performance numpy kdtree

0
推荐指数
1
解决办法
724
查看次数