Оптимизация строки в ndarray, содержащая целые числа и несколько разделителей - PullRequest
0 голосов
/ 31 января 2020

Я передаю большое количество данных ASCII с устройства и декодирую их в строковый тип. В результате получается строка с запятой и точкой с запятой.

'- 81, -82, -82; -87, -88, -88, -88,'

Моя цель - разбить эту строку на массив измерений: [length точек с запятой, длина запятых. Каждый элемент массива является целочисленным значением, как показано в моем примере выше. Я реализовал два метода для достижения своей цели, но оба они занимают очень много времени (около 3-7 секунд). Я работаю с 10 миллионами целых чисел. Можно ли сократить время обработки и если да, то как мне go об этом?

Спасибо

#Method 1 (about 3 seconds to process)

BigTrace = BigTraceBytes.decode()
Traces = BigTrace.split(';')

box = np.empty([len(Traces),Record_Length])   
idx= 0

for row in Traces:
   temp = row.split(',')
   box[idx] = [float(i) for i in temp]
   idx+=1

box3d = box.reshape(100,100,1000)

#Method 2 (about 7 seconds to process)

BigTrace = BigTraceBytes.decode()
TraceSplit = (re.split(',|;',BigTrace))
ArrSplit= np.array(TraceSplit)
done = ArrSplit.astype('int')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...