python数组做参数传递给函数,python – 如何将一个数组的字符串类型传递给Cython中的函数...

传递一个数组的dtype np.float64_t工作正常(下面),但我不能传递字符串数组.

这是有用的:

# cython_testing.pyx

import numpy as np

cimport numpy as np

ctypedef np.float64_t dtype_t

cdef func1 (np.ndarray[dtype_t, ndim=2] A):

print A

def testing():

chunk = np.array ( [[94.,3.],[44.,4.]], dtype=np.float64)

func1 (chunk)

但我不能这样做:

我找不到匹配的’类型标识符’为numpy字符串dtypes.

# cython_testing.pyx

import numpy as np

cimport numpy as np

ctypedef np.string_t dtype_str_t

cdef func1 (np.ndarray[dtype_str_t, ndim=2] A):

print A

def testing():

chunk = np.array ( [['huh','yea'],['swell','ray']], dtype=np.string_)

func1 (chunk)

编译错误是:

Error compiling Cython file:

------------------------------------------------------------

ctypedef np.string_t dtype_str_t

^

------------------------------------------------------------

cython_testing.pyx:9:9: 'string_t' is not a type identifier

UPDATE

通过查看numpy.pxd,我看到以下ctypedef语句.也许这足以说我可以使用uint8_t,假装一切正常,只要我可以做一些铸造?

ctypedef unsigned char npy_uint8

ctypedef npy_uint8 uint8_t

只需看看铸造将会有多昂贵.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值