Увеличить скорость numpy.loadtxt?

Не все ли здесь ответы с блоками try / catch содержат .close (), содержащиеся в блоке finally?

Пример для отмеченного ответа:

PrintWriter out = null;
try {
    out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)));
    out.println("the text");
}catch (IOException e) {
    System.err.println(e);
}finally{
    if(out != null){
        out.close();
    }
} 

Кроме того, с Java 7 вы можете использовать оператор try-with-resources . Для закрытия объявленного ресурса (ов) не требуется блок finally, потому что он обрабатывается автоматически, а также менее подробен:

try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)))) {
    out.println("the text");
}catch (IOException e) {
    System.err.println(e);
}

0
задан Mooder 1 March 2019 в 16:17
поделиться

1 ответ

Вероятно, было бы намного быстрее, если бы у вас был один большой файл вместо множества маленьких. Как правило, это более эффективно. Кроме того, вы можете получить ускорение от простого сохранения массива numpy и загрузки этого файла .npy вместо чтения в большом текстовом файле. Я не так уверен насчет последней части, хотя. Как всегда, когда время вызывает беспокойство, я бы попробовал оба этих варианта, а затем измерил улучшение производительности.

Если по какой-то причине вы не можете просто иметь один большой текстовый файл / файл .npy, вы также можете получить ускорение, используя, например, multiprocessing, чтобы несколько рабочих читали файлы одновременно время. Затем вы можете просто объединить матрицы в конце.


Не ваш основной вопрос, но так как это кажется проблемой - вы можете переписать текстовые файлы, чтобы не было лишних символов новой строки, но я не думаю, что np.loadtxt может их игнорировать. Если вы готовы использовать pandas, то pandas.read_csv с skip_blank_lines=True должны справиться с этим за вас. Чтобы получить numpy.ndarray из pandas.DataFrame, просто сделайте dataframe.values.

0
ответ дан Nathan 1 March 2019 в 16:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: