topics

全部话题 - 话题: cython
1 2 末页 (共2页)
S*A
发帖数: 7142
1
来自主题: Linux版 - 玩了玩 cython
感觉没有第一眼看上去那么好。
这个可能和我个人习惯有关。写 Python C module,
我已经是大半个熟练工种了,我甚至写过直接从 C source
生成 Python C module 的东西。过于复杂没有发表。
这个 cython 生成的 C file 非常乱,没法读的。
这个比较打击我的热情。cyx 的语法很怪,类似 python
但是又有很多细节的规则要记住。有点隔靴挠痒的感觉,
这个我上次就说过了。我觉得费那么多力气就是为了避免
直接写 Python C module 似乎不是很值得。Python C
module 非常有规律可寻的,虽然看起来 Code 很多,
但是结构性很强,所以很容易理解。而且这些理解能帮助
你进一部了解 Python 内部工作原理,对写好 Python Code
很有帮助的。关键是这个 cython 的代码感觉不优美,里面
magic 太多。我个人是比较不喜欢 magic 系统的。
而且归根到底这是个比较鸡肋的市场。如果我要 performance.
那我就直接把数据 dump 到 C module 里面好了。关键部分用
C 写没有什么碍手碍脚的... 阅读全帖
F*******i
发帖数: 190
2
来自主题: Linux版 - 玩了玩 cython
Well said.
Any suggestions/docsto write c modules for python?
Also, any suggestions to connect c++ <-> python? (boost/swig/cython?)
thanks!
l******n
发帖数: 9344
3
来自主题: Programming版 - 有熟悉cython的大牛吗?
要wrap一个c++library,编译一直出错
看了cython的example,但是我自己试了一下,那个rectangle的例子好像也有问题。
getsize函数出cannot convert it * to Python object 的错。哪位用过?
F*******i
发帖数: 190
4
来自主题: Linux版 - Google go 还挺不错的
Thanks! I didn't realize numpy's view/slice has such overhead :)
The Gil I mean, is
http://wiki.python.org/moin/GlobalInterpreterLock
which looks like a pain of ass to me.
Have you tried cython/ctypes?
You should be able to write very fast loop with cython/ctypes.
I**********e
发帖数: 62
5
来自主题: Linux版 - Google go 还挺不错的
I just started to use cython recently.
As far as I know, any serious python project has to use cython more or
less.
Though there are 2 problems for me:
I could not find any good editor for it and I could not find any doc for
cross-python-version compiling.
But I like everything else.
d***q
发帖数: 1119
6
来自主题: Programming版 - Python vs J2EE
i currently used py to build a back end of real time embedded tracking
system. It is a cool thing..
as you talked about pypy, i think it still need a decade to become mature.
btw: i use cython heavily for performance-critical part. it is quite easy to
move some slow parts to c code by cython.
d***q
发帖数: 1119
7
来自主题: Programming版 - 为啥大家都比较python的web framework呢

use cython&c++. cython is great.
s*****t
发帖数: 89
8
来自主题: Programming版 - 写脚本真麻烦
类型的话可以用王垠同学的PySonar2产生出来文档随时查阅(https://github.com/
yinwang0/pysonar2),不过我分析python的标准库花了半个多小时,好在这种静态分
析做一次就够了。
安装的话倒是从来没与到过什么问题,讨厌的是2和3之间换来换去的情况,又不想给系
统里面赛太多依赖只好用virtualenv了
IDE 尝试了PyCharm Ninja,最后发现IDE的效率都不如ipython notebook。
我写的时候基本上是这个套路:
0:新开一个cell,测试下库的用法
1:基本控制流,每次写一点Shift Enter就知道结果了
2:等到写了几百行了拆几个函数、封装成类什么的,不过我又不做通用库,都是给自己
写着用的,所以不太喜欢用OO的哪些东西。
可能有人一上来就比较注意大局,考虑问题比较周全,但那样也挺浪费时间的,就像楼
主说的只要思路清楚了其实那些art的部分不太要紧了。
3:合并cell,保存成py文件,丢给python、cython
等功能正确了就开始做点profile用cython优化下,受sage的老大的文章影响不太喜欢
swi... 阅读全帖
w*x
发帖数: 518
9
来自主题: Programming版 - 什么FP能替代python
是…其实如果vectorize的好,numpy已经很快了,不过会有一些非线性特别强的算法需
要用JIT或者Cython加速。
可能是我的领域吧(计算神经学,计算量其实也不算小了),我觉得Python基本没有性
能问题,因为有numpy和cython...后者可以把瓶颈优化到C速度…虽然这个时候跟写纯C
区别也不算太大了…
我个人不用jit, 不过只是因为懒得…
不过,可能最终还是看领域了。
cuda编程比较慢,可能适合production不适合科研…?
p*********k
发帖数: 13
10
来自主题: Programming版 - 请不要盲目崇拜FP语言
同意这个回帖。
我写过C++,C,Java, C#,感觉java 和C# 的开发效率确实高。c/c++的计算效率高, 内
存小, 速度快。但是用来用去还是python是真爱。没别的,科学计算无人能敌, 兼顾开
发效率和计算效率。我做machine learning 的, computer vision 和nlp 的都要有。
先说library, 很多的vision library 是Matlab 的,改成java 或是C# 太累了。C++
有很好的库,但是要花不少时间调试。要是在device上实现还有需要,在cloud上就
overkill了,毕竟还有io瓶颈。python 就方便太多了,基本直接翻译matlab成numpy
scipy. NLP的库,JAVA 和SCALA是重镇。Python里的有 nltk,相比而言比较慢一些。但
是坦率的说, nltk里的一些实现还是比较简单没有使用numpy scipy. 随着现在的deep
learning 的算法进展, 很多将来的 nlp库会更适合在python 环境下运行。再说
machine learning, 就不说sklea... 阅读全帖
d********g
发帖数: 10550
11
Cython编译不是pyc,你说的是Python编译。Cython是py转C代码然后比如GCC编译,和
直接编译C没区别
n******7
发帖数: 12463
12
我明白你的意思了,很好的point
我倒是也希望有一种写的容易,跑的快,包还全的语言
所以之前了解过Julia,然后因为这个benchmark的问题很失望
他们是知道大家的这个疑问,但是故意不解释也不改进代码
起码他们应该给出一个不适合矢量化的例子,用来评估裸循环的速度
你说的这个问题我在R里面遇到很多
因为R里面循环的速度是超级超级的慢
一个说法是你的循环超过100次,你就应该想办法改进代码了
但是不是每个问题都适合或者很容易矢量化的
这也是我抛弃R的一个重要原因
Python比R的情况好,也有pypy,numba这样的JIT版本,还有Cython
搜了一下,
pypy似乎总体还是不如julia
http://stackoverflow.com/questions/10775510/julias-python-performance-example-in-pypy
但是Cython numba numpy这些工具还是挺给力的,8个benchmark6个比julia快,总体可
以算持平
https://www.ibm.com/developerworks/community/blogs... 阅读全帖
p**z
发帖数: 65
13
我相信Python配合Cython和Numba使用,应该可以解决不少循环速度问题。我除了读
tutorial没有怎么太用过它们;印象是它们比较适合纯数值运算(循环内数据是简单数
据类型)。
我在应用中未来需要处理的情况是,程序主体就是多层嵌套大量循环,里面除了数值计
算还需要用到不少自定义的数据结构,而且要尽量把可以并行运算的循环扔到不同的
processor上面去;有些内层循环的计算可能要使用GPU提速。我的理解这种情况不适用
于Cython和Numba,但是我也没有仔细研究过它们所以不是100%确定。
大部分人可能没有这样的需求,用Python完全可以满足应用。
Julia的确太年轻,package数量远不如Python(目前官方注册package数是1101,http://pkg.julialang.org/;Python官方注册package数是87882,https://pypi.python.org/pypi)。Julia package的数目是在稳步增长中(http://pkg.julialang.org/pulse.html),我觉得将来在科学计算领域Julia有希望成... 阅读全帖
l******n
发帖数: 9344
14
我的经验是
cython给c/c++写wrapper太好用了,而且cython速度很快,和c差不多。
pypy号称速度很快没有用过
numba很多用来加速python,但是限制很多,try过但是放弃
Julia感觉很火,很多公司在用,但是julia的package和python比差很多

package
d*******r
发帖数: 3299
15
来自主题: JobHunting版 - 说说python
对了,能说说为什么不喜欢Python呢。作为一个Python菜鸟,我觉得用Python写个几千
行的project,感觉还挺爽的。
今天看到些好玩的东西,关于 optional static type in Python 的讨论:
http://www.artima.com/weblogs/viewpost.jsp?thread=85551
http://www.artima.com/weblogs/viewpost.jsp?thread=86641
另外,好像Cython里面也可以用cdef定义type的。但是我不是static type的fan。
L******g
发帖数: 1371
16
来自主题: JobMarket版 - Quant Developer in Greenwich
QUANT DEVELOPER
Requirements
- Bachelors degree or later (not necessarily from a top institution) in a
quantitative field of study.
- Programming skills in C/C++ with Python a plus (and Cython or C-Python
integration a big plus).
- Strong understanding of object-oriented programming (and pitfalls of
inheritance a plus).
- Good work ethic with decent communication skills.
- Experience with code performance optimization.
- Experience developing on Unix/Linux a plus.
- Multi-threaded programming ex... 阅读全帖
p**o
发帖数: 3409
17
不知道版上有没有用Python做科学计算的同好,
本人近日在带Lion的新MBA上安装Python科学计算包遇到了困难,
现把失败经历小结如下,希望后来人不要重走弯路,
如果能为本人指出一条“正路”就更感谢。
尝试1. MacPorts
macports是我第一个试的,下面这些包可以通过编译:gnuplot libsvm py27-numpy
py27-scipy py27-matplotlib python27-doc py27-sympy py27-ipython py27-
networkx py27-pymc py27-django py27-libdnet py27-lint py27-mysql py27-pip
py27-ply py27-pygraphviz py27-pyrex py27-rpy2 py27-scientific py27-sqlite
py27-svn py27-tables py27-tornado igraph py27-igraph py27-numexpr py27-pp
py27-cython py27-psyco py27-twisted... 阅读全帖
F*******i
发帖数: 190
18
来自主题: Linux版 - Google go 还挺不错的
thats true :)
I mean, cython, not cpython, it may be used for fast prototyping
while main ok speed.
r****t
发帖数: 10904
19
来自主题: Linux版 - Google go 还挺不错的
cython != cpython
S*A
发帖数: 7142
20
来自主题: Linux版 - Google go 还挺不错的
shame on me. As a long time python lover and hacker,
I only heard about it here a few days ago.
Here is vim syntax highlighting for cython:
http://www.vim.org/scripts/script.php?script_id=2209
If you don't use vim, well, learn it. :-)
Can you give more detail on the python version
problem you have?
F*******i
发帖数: 190
21
来自主题: Linux版 - Google go 还挺不错的
i am happy with vim's synatax highlight/indent for cython
r*******n
发帖数: 3020
22
来自主题: Linux版 - Google go 还挺不错的
I'm python lover, too, but not hacker.
Looking forward to your post about cython after you play it around.
S*A
发帖数: 7142
23
来自主题: Linux版 - 玩了玩 cython
我觉得 Python 官方的文档 C API 那部分就挺好。上手是够用的。
自己写个 module 调用自己的 function. 创建一个 extenstion type.
写个基本的 method. 这个就是不错的开始了。
深入的没有很多文档。主要的困难在于 python type struct
里面有很多 member, 怎么用不是很多文档。这个最好的就是看
Python 自己的 source code. Python/objects/
例如你好实现个 dictionary 类似的 type. 看 dictobjects.c
一般 Python 内部的 Object 有很多 fancy 的功能。或者类似的
object. 粗看代码很多。把注意力放你要实现的那些动能先。
c++ -> python 有写工具可以用的,但是我不是很熟悉。
我一般不用 c++。
F*******i
发帖数: 190
24
来自主题: Linux版 - 玩了玩 cython
cool.
thanks a lot.
F*******i
发帖数: 190
25
来自主题: Linux版 - python c/c++ question.
Sorry can not input chinse.
Play with cython and looks like it can mix c/c++/python quite well.
For example, the xxx.so file generated by g++ could be import by python
flawlessly.
I am wondering whether it is because Cpython implementation always put
the extern "C" to its source, so that the name mangling could be correct
even if mixed with c++?
thanks!
l********a
发帖数: 1154
26
我转到python了,觉得简洁大方,跟读文章一样,
c/cpp一般看一堆大括号我就晕了
要效率有cython,相当于纯c了
I**********e
发帖数: 62
27
来自主题: Programming版 - Python vs J2EE
真能写。不过好像没提GIL。呵呵。
static typing, JIT什么的,Python也可以有的。GIL的问题也会解决的。
Python的变种很多,表只盯着CPython。我觉得Pypy, RRython, Cython什么的都挺有前
途的

hardware
l********a
发帖数: 1154
28
来自主题: Programming版 - python比java慢这么多呀
分析瓶颈,用cython重写
还有贴下核心处理步骤,不应该慢这么多啊
d***q
发帖数: 1119
29
来自主题: Programming版 - python比java慢这么多呀
这种处理 更有可能是没用对
还不一定需要cython出马。
除非有大量的密集型计算。
l********a
发帖数: 1154
30
来自主题: Programming版 - python比java慢这么多呀
分析瓶颈,用cython重写
还有贴下核心处理步骤,不应该慢这么多啊
d***q
发帖数: 1119
31
来自主题: Programming版 - python比java慢这么多呀
这种处理 更有可能是没用对
还不一定需要cython出马。
除非有大量的密集型计算。
l********a
发帖数: 1154
32
来自主题: Programming版 - 如何自学python
矩阵,数值啊什么的,python有numpy库挺方便了,画图有matplotlib,界面有pygtk,wxpython,pyqt等可选
学习我推荐一本
非常薄,不到93页,半个下午就看完了,开个IDLE放一边随时调命令.
等常用的都熟悉了,用到什么库再去学什么就行了
一个星期基本就熟练掌握了.
对了,上2.6或者2.7版本吧,这2个版本的兼容性目前最好.3.x先不要上
楼上说的速度问题,应该感觉不到的,
如果实在有瓶颈,profile之后用cython改写主要的处理部分,速度上不存在大问题的
l********a
发帖数: 1154
33
来自主题: Programming版 - 如何自学python
矩阵,数值啊什么的,python有numpy库挺方便了,画图有matplotlib,界面有pygtk,wxpython,pyqt等可选
学习我推荐一本
非常薄,不到93页,半个下午就看完了,开个IDLE放一边随时调命令.
等常用的都熟悉了,用到什么库再去学什么就行了
一个星期基本就熟练掌握了.
对了,上2.6或者2.7版本吧,这2个版本的兼容性目前最好.3.x先不要上
楼上说的速度问题,应该感觉不到的,
如果实在有瓶颈,profile之后用cython改写主要的处理部分,速度上不存在大问题的
C********k
发帖数: 84
34
来自主题: Programming版 - Cython生成的.so文件可移植性如何?
能够直接在不同的Linux版本下使用吗?
多谢!
d***q
发帖数: 1119
35
来自主题: Programming版 - Cython生成的.so文件可移植性如何?
最好是重新编译。如果你的.pyx中只是pure python的代码说不定可以。
d***q
发帖数: 1119
36

try cython, it is much better sometimes.
d***q
发帖数: 1119
37

try cython, it is much better sometimes.
m********5
发帖数: 17667
38
用了很久cython的表示:小打小闹还可以,这玩意儿基本是调试不能啊...
W*****k
发帖数: 158
39
来自主题: Programming版 - 哪有关于python调用c的tutorial啊
循环多的地方用c写的
然后想用python调用自己定义的c函数
网上搜了半天,发现有各种各样的api
CPython,C type,swig,Cython....
但是怎么都找不到一个比较简单明了的tutorial
哪位大侠帮一下菜鸟?
d***q
发帖数: 1119
40
来自主题: Programming版 - 未来ruby能不能挤掉python

numpy, scipy & cython are powerful tools for scientific computing.
easy to use without sacrificing performances.
d***q
发帖数: 1119
41
来自主题: Programming版 - 为啥大家都比较python的web framework呢
I am using python/twisted for real time machine control. use TCP,UDP only.
some performance critical parts are written in cython/c++.
I also use Luajit (can be integrated with python easily).
d***q
发帖数: 1119
42
来自主题: Programming版 - python太慢了

pypy 可以有效消除 function call的开销,不过对于数值计算,效果不如用cython。
而且现在pypy的坑也比较多,就算是2.0也是如此。
d***q
发帖数: 1119
43
来自主题: Programming版 - python太慢了
python (估计,ruby, 或者其他动态语言也可能适用)
的 function call是个很重型的动作,vm又比较差劲,没法很好地Inline 来避免开销,
+ 类型的检查,导致如果发生大量函数调用时就会很慢。于是不少人搞出了一些
例如 cython,swig之类的东西,本质就是要绕过pvm, 降低函数调用的损失,来达到加
速的效果。
GIL 这个可以用多进程来部分解决这个问题,也有不少应用的例子,例如web的
前端用nginx, 后端起若干个进程,或者用zeromq之类来进行进程间的通信,都有真实
的例子,所以gil 现在反而不是太敏感。
w*x
发帖数: 518
44
来自主题: Programming版 - python太慢了
小白弱问 为啥不用Cython?
V*********r
发帖数: 666
45
来自主题: Programming版 - 以后Web就是Node的天下了
基本都是 裸写C-API, 或者 SWIG, cffi。C++只要暴露C接口就行;不暴露C接口可以直
接用Boost.Python, scipy.weave 这些。或者 Cython 也是一条路,但那是另一种
Python和C的合体语言。总之都是编译成本地 dll/pyd/so,供 Python 调用,很多时候
实在是没办法的事情,谁让 CPython 解释器实现这么挫。
c****t
发帖数: 19049
46
来自主题: Programming版 - Scala or clojure
都是理想。科学计算的基本模块从来没需要超越甚至FORTRAN77的能力。数据分析要么
用SAS,好歹SAS现在有IML了,不那么土了; 如果非要自己写算法就学C,用Rcpp和
Cython。

only
power
w*x
发帖数: 518
47
来自主题: Programming版 - matlab 和 R 的最大(根本)区别?
快滚蛋的PHD的一点感觉:
常年用Python + SciPy (因为工作方向的原因,只有比较基础的统计分析,所以scipy
+ scikit完全可以胜任),发了一些东西了,觉得很顺手。
以前是用matlab的,也很好用,但是语言确实比较... ugly, 很多事情要多浪费相当
多时间,毕竟代码重用率相比之下还是略低。
我一个实验室的师兄做的统计稍稍多一些,用不少R + python, 他说R的大量统计包+活
跃的community是python不可比拟的。我感觉statsmodels让python这个方面有很大进步
,但是比R,就现在来说还是差了不少。实话说,我更喜欢python很大一部分原因是因
为这是个real programming language, 用起来比较好玩:)
至于Ruby, Java, C/C++, 前两者科学的库还不成熟,最后的写起来开发效率确实低下
;除非有特别的performance要求,并且用vector优化不起来的,才会去写。(现在有
Cython了,可是每次都看了一眼头大然后直接写C用ctypes调用了……把ctypes当
matlab mex使……)... 阅读全帖
p**z
发帖数: 65
48
来自主题: Programming版 - c++就像一个贼船
那么各位大侠觉得用 Python 快速开发,如果碰到用户在意的速度瓶颈,再把那一部分
反复执行造成效率下降的改写成Cython函数(其实就是C了,编译了以后让Python调用
),这个思路如何?
背景:非常小的作坊,目前不需要团队一起写code;将来可能要小团队,也就是几个人
。用户也是个人在 Desktop 上,可预见未来不会有大规模分布式的应用。个人比较喜
欢 Python 大量的科学计算库,有很多现成算法而且常常不用 loop。也喜欢它面向对
象,这点比 Matlab 强太多。
t*********h
发帖数: 941
49
来自主题: Programming版 - 什么FP能替代python
cython is fast enough
w*x
发帖数: 518
50
来自主题: Programming版 - python转化成exe的能力怎样?
是的,我用的就是这个……因为WinPython用的就是Gholke做的binary.... 我推荐
Anaconda是因为那个更简单哈~WinPython有时候比如Cython什么的还得自己配置一下~
1 2 末页 (共2页)