Python 3.x 如何使用python中的Numpy差异更正错误的值?

Python 3.x 如何使用python中的Numpy差异更正错误的值?,python-3.x,numpy,Python 3.x,Numpy,我一直在用Python处理我的数据。我的数据通过使用numpy.diff导入为numpy数组。但结果却是一组错误的值 import numpy as np mydata = np.array([1285, 1328, 1277, 1293, 200, 1284, 1266, 1273, 1252, 1233, 1208, 1166, 1200, 1173, 1179]) print(np.diff(mydata)) 它表明: [ 43 65485 16 64443 1084

我一直在用Python处理我的数据。我的数据通过使用
numpy.diff
导入为numpy数组。但结果却是一组错误的值

import numpy as np

mydata = np.array([1285, 1328, 1277, 1293,  200, 1284, 1266, 1273, 1252, 1233, 1208, 1166, 1200, 1173,
 1179])

print(np.diff(mydata))
它表明:

[   43 65485    16 64443  1084 65518     7 65515 65517 65511 65494    34
 65509     6]
这是绝对错误的


谁能帮我解决这个问题?

您的数组类型可能是
uint16
。事实上:

>>> my_data =np.array([25,14], dtype=np.uint16)
>>> np.diff(my_data)
array([65525], dtype=uint16)
这是因为未生成的整数不能表示负数,因此结果是一个环绕

您可以将数组的类型更改为
int32

>>> np.diff(my_data.astype(np.int32))
array([-11], dtype=int32)
np.diff(my_data.astype(np.int32))
数组([-11],dtype=int32)为什么数组中没有逗号?您使用的数组的
dtype
是什么?请注意,如果未签名,它将进行换行,这解释了
65'5..
部分。可能类型是
uint16
。请尝试
np.diff(a.astype(int))
谢谢!这就是原因。