【问题标题】:Is it possible to use blitz++ indexing and blitz functions in scipy.weave.inline是否可以在 scipy.weave.inline 中使用 blitz++ 索引和 blitz 函数
【发布时间】:2012-02-09 18:17:47
【问题描述】:

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

【问题讨论】:

    标签: numpy blitz++


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-31
      • 2015-04-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多