可以ufunc使用numpy计算项迭代?

时间:2013-05-29 07:52:15

标签: python numpy

numpy很棒,而且ufunc用于计算每个项目。

我想计算项目的一些数据,基于项目的邻居计算,所以我想在每个项目上使用自定义的ufunc时得到项目值和邻居的值,如何得到索引使用ufunc时的项目?

这是我的代码:

//data is a ndarry type
def calc1(data,k,t):
    count = 0
    while count<t:
        for i in xrange(data.shape[0]):
            for j in xrange(data.shape[1]):
                if i == 0:
                    im = data.shape[0]-1
                else:
                    im = i-1
                if i == data.shape[0]-1:
                    ip = 0
                else:
                    ip = i+1
                if j == 0:
                    jm = data.shape[1]-1
                else:
                    jm = j-1
                if j == data.shape[1]-1:
                    jp = 0
                else:
                    jp = j+1
                data[i,j] = data[i,j]*exp(k*log(data[i,j]-k*log(data[i,jm])))+data[im,j]*exp(k*log(data[im,j])-k*log(data[im,jm]))+data[ip,j]*exp(k*log(data[ip,j])-k*log(data[ip,jp]))
        count += 1
        print count
    print data

calc计算新数据[i,j],计算将应用于矩阵中的所有项目,所以我认为ufunc会有所帮助。

我做的是使用循环,但我认为ufunc会更加优雅。

ufunc可以对单个项目应用一些计算,那么我可以在我的工作中写一个ufunc吗?

0 个答案:

没有答案