中nd numpy数组的FOOn(i,j,k)表示法编织.inline()的支持代码参数?还有其他选择吗?

2024-09-28 05:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用support_code来定义与ndnumpy数组交互的函数。在code参数中,FOO3(i, j, k)表示法有效,但仅在其中起作用,support_code中无效

import scipy
import scipy.weave
code = '''return_val = f(1);'''
support_code = '''int f(int i) {
    return FOO3(i, i, i);
}''''
foo = scipy.arange(3**3).reshape(3,3,3)
print(scipy.weave.inline(code, ['foo'], support_code=support_code))

Tags: 函数importsupport参数return定义foocode
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:08

支持代码的概念主要是做一些包含。在您的情况下,我想函数应该如下所示:

import scipy
import scipy.weave

def foofunc(i):
    foo = scipy.arange(3**3).reshape(3,3,3)
    code = '''#do something lengthy with foo and maybe i'''
    scipy.weave.inline(code, ['foo', 'i']))
    return foo[i,i,i]

你根本不需要支持代码,因为你正在尝试做什么。你也没有任何速度上的改进,当你尝试用C而不是python中的函数返回时,与函数调用的开销相比,数组访问是可以忽略的。为了更好地了解weave何时以及如何帮助您加快代码速度,请看一下here。在

相关问题 更多 >

    热门问题