在我的代码中,我通常使用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. Martinot-Lagarde问我,我指的是C指针和“numpy指针”.代码基本上是

for ii in range(someArraySize):

someArrayPointers[ii] += 1

for ii in range(someArraySize):

someArrayBuff[ii] += 1

与上面的定义,但我添加“ndim = 1,mode =’c’”只是为了确保.结果是someArraySize = 1e8(以ms为单位的时间):

testMartinot("cPointers")

531.276941299

testMartinot("numpyPointers")

498.730182648

这是我从之前/不同的基准测试中粗略记住的.

c语言指针生成numpy数组,python – 在cython中声明numpy数组和c指针相关推荐

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

    在我的代码中,我通常使用numpy数组在方法和类之间进行接口.为了优化程序的核心部分,我使用cython和那些numpy数组的c指针.不幸的是,我目前声明数组的方式相当长.在 例如,假设我有一个方法, ...

  2. java 全局数组_如何在Java中声明全局数组?

    我有一个程序在Java中乘以两个矩阵.我在全局错误声明中发现了一些错误. 这里是我的代码如何在Java中声明全局数组? import java.util.Scanner; /**WAP in Java ...

  3. numpy 查找 返回索引_numpy中实现ndarray数组返回符合特定条件的索引方法

    下面为大家分享一篇numpy中实现ndarray数组返回符合特定条件的索引方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 在numpy的ndarray类型中,似乎没有直接返回特定索引的方 ...

  4. python如何调用c++numpy.ndarray代码_python – 在cython中使用numpy:定义ndarray数据类型/ ndims...

    我正在尝试编写一些cython代码来进行numpy数组的计算. Cython似乎不喜欢我见过的所有示例中使用的[]来定义数据类型和维数. 例如,我有一个文件test.pyx: cimport nump ...

  5. 如何在Python中声明一个数组?

    如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...

  6. 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数

    1.把数组传参给函数 可以定义一个QVector的一个数组 QVector num(10); for(int  i =0;i<10;i++) num [i] = i*i; fun(num); / ...

  7. python创建数组并运行_python-Cython中从现有数组和变量创建新数组...

    与"普通" Python相比,Cython为我们提供了更多对array.array内部的访问,因此我们可以利用它来加速代码: >对于您的小示例,几乎减少了7倍(消除了大部分开 ...

  8. python一维数组使用方法_python中向一维数组添加元素的方法

    python 怎么将一个数组逆序输出?爱上了你,我才领略思念的滋味,分离的愁苦和妒忌的煎熬,还有那无休止的占有欲. python 怎么将一个数组逆序输出? 知道的告诉我咯.. 工具/材料:电脑.Pyt ...

  9. c语言中一维数组和二维数组,详解C++中的一维数组和二维数组

    C++一维数组 定义一维数组 定义一维数组的一般格式为: 类型标识符  数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素. 关于一维数组的几点说明: ...

最新文章

  1. python requests max retries_我可以为request.request设置max_retries吗?
  2. 快速学会MySQL常用操作方法
  3. 1036: [ZJOI2008]树的统计Count
  4. 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)
  5. @ResponseBody//该注解会将返回值转为json格式并放到响应体中返回到前台
  6. linux 链接文件 通配符,linux globbing文件通配符
  7. C++基础06-类与对象之new和malloc
  8. C++静态联编与动态联编
  9. 修改 tomcat 初始 ROOT 的方法
  10. win7鼠标指针主题包_轻松办公之全局鼠标手势软件
  11. 有关人工智能方面的调研报告
  12. 全球三大计算机病毒爆发事件,全球爆发勒索病毒 十大恐怖电脑病毒排行榜(3)...
  13. win10计算机系统慢,电脑win10系统为什么反应那么慢,原来出在这里
  14. 特征选择 - 逐步回归 (stepwise regression)
  15. 添加了validaterequest=false 为什么还是报错
  16. 函数 fprintf() 使用说明
  17. GEA 3.1 重温C++以及实践
  18. python界面怎么改颜色_python使用tkinter做界面之颜色
  19. 圣诞节高清Mac动态壁纸
  20. 《GAN万字长文综述》的读文章笔记

热门文章

  1. JavaScript正则式练习
  2. 8.仿阿里云虚拟云服务器的FTP(包括FTP文件夹大小限制)
  3. Android漫游记(1)---内存映射镜像(memory maps)
  4. Windows Server 2012 存储 (三)SMB 的高可用性
  5. 微软架构师谈编程语言发展
  6. 幸福的源泉:Life is about choices 幸福可以选择
  7. C#下载大文件并实现断点续传
  8. Django—自定义分页
  9. CentOS7.2安装jdk7u80
  10. 实验一 命令解释程序的编写