小编Pet*_*ter的帖子

使用NumPy数组数据编写原始二进制文件

我想将numpy float数组的内容保存为原始二进制文件,作为带符号的16位整数.我尝试使用ndarray.tofile完成此操作,但我无法找出正确的格式字符串.似乎文件以双格式保存,不管我如何选择格式字符串.我该怎么做呢?谢谢.

python binary numpy

17
推荐指数
2
解决办法
5万
查看次数

在Cython和NumPy中包装C函数

我想从Python调用我的C函数,以便操作一些NumPy数组.功能是这样的:

void c_func(int *in_array, int n, int *out_array);
Run Code Online (Sandbox Code Playgroud)

结果在out_array中提供,其大小我事先知道(实际上不是我的函数).我尝试在相应的.pyx文件中执行以下操作,以便能够将输入从NumPy数组传递给函数,并将结果存储在NumPy数组中:

def pyfunc(np.ndarray[np.int32_t, ndim=1] in_array):    
    n = len(in_array)
    out_array = np.zeros((512,), dtype = np.int32)
    mymodule.c_func(<int *> in_array.data, n, <int *> out_array.data)
    return out_array
Run Code Online (Sandbox Code Playgroud)

但我得到 "Python objects cannot be cast to pointers of primitive types"输出分配的错误.我该如何做到这一点?

(如果我要求Python调用者分配正确的输出数组,那么我可以这样做

def pyfunc(np.ndarray[np.int32_t, ndim=1] in_array, np.ndarray[np.int32_t, ndim=1] out_array):  
    n = len(in_array)
    mymodule.cfunc(<int *> in_array.data, n, <int*> out_array.data)
Run Code Online (Sandbox Code Playgroud)

但是我可以这样做,调用者不必预先分配适当大小的输出数组吗?

c python numpy cython word-wrap

10
推荐指数
1
解决办法
3506
查看次数

标签 统计

numpy ×2

python ×2

binary ×1

c ×1

cython ×1

word-wrap ×1