关于“Python int too large to convert to C long”的解决。

这个问题在我使用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],并没有逗号隔开,因此可能把多个值连接在一起就变成特别大的数。通过转化为列表就可以避免这个问题。

你可能感兴趣的:(python,python,too,large,long)