Как исправить неправильные значения с разницей Numpy в python? - PullRequest
1 голос
/ 22 марта 2020

Я работал над своими данными Python. Мои данные импортируются как массив numpy с использованием numpy.diff. Но получается неправильный набор значений.

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]

, что абсолютно неправильно!

Кто может помочь мне разобраться это проблема?

1 Ответ

1 голос
/ 22 марта 2020

Тип вашего массива, скорее всего, uint16. Действительно:

>>> my_data =np.array([25,14], dtype=np.uint16)
>>> np.diff(my_data)
array([65525], dtype=uint16)

Это происходит потому, что unsiged целые числа не могут представлять отрицательные числа, и, таким образом, результатом является перенос.

Вы можете изменить тип вашего массива Например, int32:

>>> np.diff(my_data<b>.astype(np.int32)</b>)
array([-11], dtype=int32)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...