Python与C语言混合编程之复数数组的参数传递方法( 三 )
下面给出Python中转为numpy数组的调用方法 。
Python中调用方法
如果像前面几篇文章中所示 , 考虑将上面函数中复数数组x直接使用ctypes模块声明为复数类型的指针 , 即形如“POINT(c_double)”的形式 , 但是 , 在ctypes模块中声明指针的类型时 , 该模块中没有c_complex类型的指针 , 所以这种方式不容易实现 。
一般情况下 , 在C语言与Python语言通过DLL文件进行混合编程时 , 可将DLL函数中的数组类型转换为numpy库里面的数组类型 , 这样做的好处是可以借助于numpy强大的分析处理功能对数据直接作后续处理 。
在numpy库中 , 直接支持复数数组类型的声明 。
按照这种思路 , 在Python中的函数声明及调用方式如下:
上面方法在声明函数的参数类型时 , 对于参数x和y复数类型的指针变量 , 使用np.ctypeslib.ndpointer(dtype=np.complex128ndim=1flags=\"C_CONTIGUOUS\")直接将numpy中的数组声明为C语言中的复数数组类型 , 最后调用时 , 将numpy中的数组类型a和b传到该函数中即可 。
推荐阅读
- |MT 正在让游戏本地化质量变得更差?
- 伊隆·马斯克|EDG夺冠翻译小姐姐火了!穿印花旗袍大秀中国美,三门语言切换超牛
- edg战队|EDG赛后美女翻译上热搜!精通4国语言为国争光,网红学霸颜值高!
- 传奇|美服传奇:克服了语言不通,还带着新手玩的风生水起!
- 梦幻西游|梦幻西游:找到了当年记录账号的笔记,因为它还被父母混合双打过
- 碧蓝航线|碧蓝航线8月19日改建更新总结 微层混合复刻开启 科研项系统优化
- 舰娘|碧蓝航线美服3周年直播新舰娘情报 微层混合复刻 疑似黑扶桑登场
- 我的世界|我的世界:世界上最难的语言是什么?MC玩家默默打开了附魔台
- 二次元|4年前谁能料到,这款二次元游戏能成为玩家的「共同语言」
- 斗鱼|疑似前斗鱼一姐10年前聊天记录曝光,语言太豪放,粉丝不敢信