2024-04-28 08:57:12 发布
网友
在Cython documentation under ^{}的gotcha部分,它说:
gotcha
This efficient indexing only affects certain index operations, namely those with exactly ndim number of typed integer indices.
ndim
这是否意味着
f[:, w] = something
没有优化?你知道吗
它可能意味着“优化(与纯Python代码相比)”。有不同种类的slicing,它们中的大多数在Python中已经非常快了,只是没有什么可以加快。例如,如果您使用f[:,w],您将获得数组f的视图。它需要一些开销,因为必须创建一个“视图”,但它已经非常快了,因为它(不包括某些高级索引操作)只是一个内存视图。你知道吗
f[:,w]
f
然而Cython能显著加快的是:访问数组的单个元素。在Python代码中,这是一个非常低效的操作,因为在访问元素时必须“装箱为Python对象”。当使用“类型化整数索引的确切ndim数”时,Cython可以避免这种“装箱”。你知道吗
所以这并不是说f[:,w]没有得到优化。它已经被numpy优化了。赛顿在那里没有多大进步。你知道吗
它可能意味着“优化(与纯Python代码相比)”。有不同种类的slicing,它们中的大多数在Python中已经非常快了,只是没有什么可以加快。例如,如果您使用
f[:,w]
,您将获得数组f
的视图。它需要一些开销,因为必须创建一个“视图”,但它已经非常快了,因为它(不包括某些高级索引操作)只是一个内存视图。你知道吗然而Cython能显著加快的是:访问数组的单个元素。在Python代码中,这是一个非常低效的操作,因为在访问元素时必须“装箱为Python对象”。当使用“类型化整数索引的确切ndim数”时,Cython可以避免这种“装箱”。你知道吗
所以这并不是说
f[:,w]
没有得到优化。它已经被numpy优化了。赛顿在那里没有多大进步。你知道吗相关问题 更多 >
编程相关推荐