Я передаю большое количество данных 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')