日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python定义数组是带指针_在cython中声明numpy数组和c指针

發布時間:2025/3/19 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python定义数组是带指针_在cython中声明numpy数组和c指针 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我的代碼中,我通常使用numpy數組在方法和類之間進行接口。為了優化程序的核心部分,我使用cython和那些numpy數組的c指針。不幸的是,我目前聲明數組的方式相當長。在

例如,假設我有一個方法,它應該返回一個numpy數組someArrayNumpy,但是在函數指針內部,應該使用someArrayPointers來提高速度。我通常這樣說:cdef:

numpy.ndarray someArrayNumpy = numpy.zeros(someArraySize)

numpy.ndarray[numpy.double_t, ndim=1] someArrayBuff = someArrayNumpy

double *someArrayPointers = someArrayBuff.data

[... some Code ...]

return someArrayNumpy

如您所見,對于一個數組來說,這需要3行代碼,而且通常我必須聲明更多的這些數組。在

有沒有更緊湊/更聰明的方法來實現這一點?我想我錯過了什么。在

編輯:

因此,因為這是由J·馬丁諾特·拉加德(J.MartinotLagarde)提出的,所以我計時了C點和“numpy指針”。代碼基本上是

^{pr2}$

以及for ii in range(someArraySize):

someArrayBuff[ii] += 1

根據上面的定義,我添加了“ndim=1,mode='c'”只是為了確保。結果為someArraySize=1e8(時間單位:毫秒):testMartinot("cPointers")

531.276941299

testMartinot("numpyPointers")

498.730182648

這是我從以前/不同的基準中大致記得的。在

總結

以上是生活随笔為你收集整理的python定义数组是带指针_在cython中声明numpy数组和c指针的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。