是否可以在scipy.weave.inline中使用blitz ++索引和blitz函数

时间:2012-02-09 18:17:48

标签: numpy blitz++

scipy文档给出了在使用weave.blitz()时使用weave.inline()和C样式索引时Blitz ++样式操作的示例。 weave.inline()是否也支持Blitz ++样式索引和缩减。这将非常方便。如果weave.inline()确实允许Blitz ++样式索引,你能否告诉我如何从weave.inline()代码中的numpy数组中获取Blitz数组。非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一个例子,在调用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)