Преобразование массива с dtype = int64 в Python - PullRequest
0 голосов
/ 22 октября 2018

У меня есть этот код:

 import numpy as np
 def buckets(listInput, intBuckets):
     x = np.linspace(np.min(listInput),np.max(listInput), intBuckets)
     indices = np.digitize(listInput, x)
     index = np.unique(indices, return_counts = True)
     return x, index

Я пишу функцию для подсчета групп чисел для создания гистограммы.listInput принимает список целых чисел, а intBuckets - количество требуемых сегментов для гистограммы.Код не возвращает никаких ошибок.Проблема с выходом.Когда я тестирую код, я получаю один из массивов в формате dtype = int64.Вот пример кода теста:

#Test
listTemp = np.random.randint(0,20,10)
listX, listY = buckets(listTemp,5)  
print(listTemp)  
print(listX)
print(listY)

print(sum(listY))

[17  7 13 19 15  0 15  2  5 13]
[ 0.    4.75  9.5  14.25 19.  ]
[array([1, 2, 3, 4, 5], dtype=int64), array([2, 2, 2, 3, 1], dtype=int64)]
[3 4 5 7 6]

Проблема listY (которая соответствует np.unique, которая группирует числа для сегментов), кажется.По подобному вопросу, предложенному , я попытался использовать np.array в коде, но получил два массива, а не один, как я ожидал.Кроме того, при добавлении значений в sum(listY) он не возвращает правильное число.Когда я запускаю только строки внутри функции (x, indices и index переменные) с номерами тестов, я получаю правильный результат.Есть ли функция Python, которая может преобразовать этот массив?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...