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 吗?