Проблемы с использованием np.getfromtxt (

Задача состоит в том, чтобы прочитать следующие данные с помощью numpy:

# File content:
# -------------
1,2,3,4,5
6,,,7,8
,,9,10,11
# -------------

Решение такое:

Z = np.genfromtxt("missing.dat", delimiter=",")

Но когда я пытаюсь это сделать, я получаю следующую ошибку:

ValueError: Some errors were detected !
    Line #3 (got 5 columns instead of 1)
    Line #4 (got 5 columns instead of 1)
    Line #5 (got 5 columns instead of 1)

Чтобы создать требуемый файл .dat, я вырезал и вставил данные в текстовый процессор (средство записи LibreOffice). Не было возможности сохранить тип .dat, поэтому я сохранил его как текстовый файл, а затем переименовал его в .dat? Не уверен, что это может быть причиной проблемы.

Можете ли вы проверить, что первым символом из закомментированных строк в файле на самом деле является #? Я могу воспроизвести ошибку, которую вы получаете, добавив аргумент comments='%', который заставляет genfromtxt обрабатывать строки, начинающиеся с #, как данные. Затем, поскольку в первой строке нет запятых, он обрабатывает всю первую строку как один столбец и ожидает, что все оставшиеся строки будут иметь только один столбец. Но затем он находит несколько столбцов в строках 3, 4, 5 и сообщает о них как об ошибках.

Warren Weckesser 31.10.2018 12:19

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

Warren Weckesser 31.10.2018 12:21

Файл взят из вопроса из Q 46 здесь: labri.fr/perso/nrougier/teaching/numpy.100/index.html

Bazman 31.10.2018 12:31

Я просто вырезал и вставил это в текстовый процессор (LibreOffice Writer). К сожалению, у LibreOffice нет возможности сохранить как .dat, поэтому мне пришлось вручную переименовать его в .dat, возможно, это вызывает ошибку?

Bazman 31.10.2018 12:33

Как вы создали файл .dat для проверки?

Bazman 31.10.2018 12:33

Я скопировал его в редактор (Sublime Text) и сохранил. Я настоятельно рекомендую вам не использовать текстовый процессор, такой как LibreOffice Writer, для редактирования программ. Любой простой текстовый редактор подойдет, но редактор, предназначенный для написания кода, в конечном итоге будет намного лучше.

Warren Weckesser 31.10.2018 12:39

Вот и все! Это работает, когда я использовал Sublime text для создания файла .dat!

Bazman 31.10.2018 13:02
0
7
31
0

Другие вопросы по теме