当前位置: 首页 > 面试题库 >

Cython :(为什么/何时)最好使用Py_ssize_t进行索引?

单耘豪
2023-03-14
问题内容

(为什么/什么时候)最好Py_ssize_t用于索引?在我刚刚找到的文档中

# 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)


问题答案:

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位体系结构。



 类似资料:
  • 问题内容: 我正在构建一个需要搜索功能的Django项目,直到出现,我必须选择一个搜索应用程序。那么,哪个最好?“最好”是指… 易于安装/设置 具有Django或至少Python友好的API 可以执行相当复杂的搜索 这是我听说过的一些应用程序,如果你知道其中任何一个,请建议其他应用程序: djangosearch django-sphinx 我还想避免使用第三方搜索引擎(例如Google Site

  • 我有一个无序数组,由连续的整数组成,没有任何重复项。允许交换任意两个元素。我需要找到按升序对数组排序所需的最小交换数。 在本例中,您可以看到,对于p=1,当索引为0和1时,交换不发生。 我改变了b[p-1],b[b.index(p)]的顺序,我不再有同样的问题了,但我不明白原因。

  • 问题内容: 我正在使用一些Cython扩展模块为项目创建文件。 我已经使这个工作了: 这安装很好。但是,这假定安装了Cython。如果未安装怎么办?我了解这是该参数的用途: 但是,如果尚未安装Cython,则当然会失败: 正确的方法是什么?我只需要在步骤运行后以某种方式导入,但是我需要为了指定值。 问题答案: 您必须包裹在一个,而在,定义为虚函数。这样,可以在不失败的情况下加载脚本。 然后,在处理

  • 本文向大家介绍使用div+css进行布局有什么好处?相关面试题,主要包含被问及使用div+css进行布局有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 @chenzhiwei0109 好处就是兼容性好吧。。。。坏处感觉挺多的,各标签含义不明确。 我记得刚学的是时候,说最一开始用的是table去实现布局的。HTML语义标签还是挺多的,就是div打发好啊

  • 我遇到了一个问题。我的网页有一个控件。值更改后(通过选择不同的值),页面将刷新并呈现内容。 下面是我的代码: 第二部分:

  • 问题内容: 我有一张表,其中有一个名为的整数列。我在该列上有一个索引。 但是似乎Postgres不想使用我的索引: 知道为什么会这样吗? 问题答案: 因为: 您选择的行太多了,以至于读取整个表都比较便宜。