我定义了这样一个函数:
def calc(x,y,B):
ar = np.array([x,y])
a = (ar[1] - B) / ar[0]
la = len(a)
z = np.kron(a, ar[0]).reshape((la,la)) - ar[1] + B
s = np.sqrt(a**2 + B).reshape((la,1))
sums = np.sum(np.abs(z/s), axis=1)
return a[np.argmin(sums)]
我有一个长度为660000的数据框,像这样:
df = pd.DataFrame({'x':[range(1,660001)],'y':[range(660000,0,-1)]
然后我使用该函数进行计算:
calc(df.x, df.y,1)
但出了错:MemoryError
。如何处理?