1

numpy 很棒,并且 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 吗?

4

0 回答 0