emb*_*ert 34 python indexing numpy cython unsigned-integer
这是这个问题的后续行动.
(为什么/何时)是否更适合Py_ssize_t用于索引?在我刚发现的文档中
Run Code Online (Sandbox Code Playgroud)# Purists could use "Py_ssize_t" which is the proper Python type for # array indices.
- >这是否始终指的是索引NumPy/Cython - 数组/ - 应该使用的视图Py_ssize_t?
- >是Py_ssize_t例如一个unsigned int,这样我可以不使用@cython.boundscheck(False)
War*_*ser 29
Py_ssize_t签了.请参阅PEP 353,其中显示"引入了一个新类型Py_ssize_t,它与编译器的size_t类型具有相同的大小,但是已签名.它将是ssize_t的typedef,如果可用的话."
您应该Py_ssize_t用于索引.我没有在Cython文档中找到明确的声明,但是Cython开发人员Stefan Behnel在电子邮件中说了很多(https://groups.google.com/forum/#!topic/cython-users/ brENF_M9zxM):
作为一般性评论,您使用整数作为索引.您应该使用Py_ssize_t类型(或者size_t,如果您更喜欢无符号类型)来适当地适应64位体系结构.
Tim*_*ers 20
Py_ssize_t是一个在CPython实现中内部使用的typedef(Python的C实现 - 我不是在谈论Cython,我在谈论CPython).它被用于Python C API函数接受或返回可用于索引Python序列的C级整数.这就是为什么它是用于索引的"正确"类型.
Py_ssize_t反过来解析为平台C的无符号类型的签名变体的平台拼写size_t.所以它是一些有符号整数类型,但它的宽度(位数)取决于你正在使用的平台.
| 归档时间: |
|
| 查看次数: |
10307 次 |
| 最近记录: |