scipy文档给出了使用weave.blitz()时的Blitz++样式操作和使用weave.inline()时的C样式索引的示例。weave.inline()还支持Blitz++风格的索引和缩减吗?那将会非常方便。如果weave.inline()确实允许Blitz++风格的索引,你能告诉我如何从weave.inline()代码中的numpy数组中获取Blitz数组吗?非常感谢。
发布于 2012-02-10 12:38:39
下面是一个示例,在调用weave.inline()时设置type_converter = weave.converters.blitz
# -*- coding: utf-8 -*-
import scipy.weave as weave
import numpy as np
import time
def my_sum(a):
n=int(len(a))
code="""
int i;
double counter;
counter =0;
for(i=0;i<n;i++){
counter=counter+a(i);
}
return_val=counter;
"""
err=weave.inline(
code,
['a','n'],
type_converters=weave.converters.blitz,
compiler="gcc"
)
return err
a = np.arange(0, 10000000, 1.0)
print my_sum(a)https://stackoverflow.com/questions/9216455
复制相似问题