Python 3.x 如何使用python中的Numpy差异更正错误的值?
我一直在用Python处理我的数据。我的数据通过使用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
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))
谢谢!这就是原因。