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