这个问题在我使用python计算平方的时候出现,其实问题的症结并不是数据太大(你可以使用print(很大的数的平方)来验证,会发现是可以输出的),而是数据结构的问题。具体是指,直接使用np.array数据来遍历,会出问题,但是如果将np.array数据转化为列表形式再遍历,那么就不会出现问题。例如:
data = np.array(1000 2000 3000)
#计算平方和
sum_squa = 0
for i in range(len(data)):
sum_squa += data[i]*data[i]
上述计算可能就会出现题目所述错误。
我的解决方法是:
data = np.array(1000 2000 3000)
#转化数据格式为列表
data = list(data)
#计算平方和
sum_squa = 0
for i in range(len(data)):
sum_squa += data[i]*data[i]
这时候就不会出错。我寻思着,问题可能出现在机器把np.array中的元素连接起来了,因为输出一个np.array(1000 2000 3000)的结果是[1000 2000 3000],并没有逗号隔开,因此可能把多个值连接在一起就变成特别大的数。通过转化为列表就可以避免这个问题。