c语言指针生成numpy数组,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. 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指针相关推荐
- python定义数组是带指针_在cython中声明numpy数组和c指针
在我的代码中,我通常使用numpy数组在方法和类之间进行接口.为了优化程序的核心部分,我使用cython和那些numpy数组的c指针.不幸的是,我目前声明数组的方式相当长.在 例如,假设我有一个方法, ...
- java 全局数组_如何在Java中声明全局数组?
我有一个程序在Java中乘以两个矩阵.我在全局错误声明中发现了一些错误. 这里是我的代码如何在Java中声明全局数组? import java.util.Scanner; /**WAP in Java ...
- numpy 查找 返回索引_numpy中实现ndarray数组返回符合特定条件的索引方法
下面为大家分享一篇numpy中实现ndarray数组返回符合特定条件的索引方法,具有很好的参考价值,希望对大家有所帮助.一起过来看看吧 在numpy的ndarray类型中,似乎没有直接返回特定索引的方 ...
- python如何调用c++numpy.ndarray代码_python – 在cython中使用numpy:定义ndarray数据类型/ ndims...
我正在尝试编写一些cython代码来进行numpy数组的计算. Cython似乎不喜欢我见过的所有示例中使用的[]来定义数据类型和维数. 例如,我有一个文件test.pyx: cimport nump ...
- 如何在Python中声明一个数组?
如何在Python中声明数组? 我在文档中找不到任何对数组的引用. #1楼 这个怎么样... >>> a = range(12) >>> a [0, 1, 2, 3 ...
- 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数
1.把数组传参给函数 可以定义一个QVector的一个数组 QVector num(10); for(int i =0;i<10;i++) num [i] = i*i; fun(num); / ...
- python创建数组并运行_python-Cython中从现有数组和变量创建新数组...
与"普通" Python相比,Cython为我们提供了更多对array.array内部的访问,因此我们可以利用它来加速代码: >对于您的小示例,几乎减少了7倍(消除了大部分开 ...
- python一维数组使用方法_python中向一维数组添加元素的方法
python 怎么将一个数组逆序输出?爱上了你,我才领略思念的滋味,分离的愁苦和妒忌的煎熬,还有那无休止的占有欲. python 怎么将一个数组逆序输出? 知道的告诉我咯.. 工具/材料:电脑.Pyt ...
- c语言中一维数组和二维数组,详解C++中的一维数组和二维数组
C++一维数组 定义一维数组 定义一维数组的一般格式为: 类型标识符 数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个元素. 关于一维数组的几点说明: ...
最新文章
- python requests max retries_我可以为request.request设置max_retries吗?
- 快速学会MySQL常用操作方法
- 1036: [ZJOI2008]树的统计Count
- 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)
- @ResponseBody//该注解会将返回值转为json格式并放到响应体中返回到前台
- linux 链接文件 通配符,linux globbing文件通配符
- C++基础06-类与对象之new和malloc
- C++静态联编与动态联编
- 修改 tomcat 初始 ROOT 的方法
- win7鼠标指针主题包_轻松办公之全局鼠标手势软件
- 有关人工智能方面的调研报告
- 全球三大计算机病毒爆发事件,全球爆发勒索病毒 十大恐怖电脑病毒排行榜(3)...
- win10计算机系统慢,电脑win10系统为什么反应那么慢,原来出在这里
- 特征选择 - 逐步回归 (stepwise regression)
- 添加了validaterequest=false 为什么还是报错
- 函数 fprintf() 使用说明
- GEA 3.1 重温C++以及实践
- python界面怎么改颜色_python使用tkinter做界面之颜色
- 圣诞节高清Mac动态壁纸
- 《GAN万字长文综述》的读文章笔记