Есть ли способ вывести массив NumPy в файл CSV? У меня есть двумерный массив NumPy, и мне нужно создать дамп в удобочитаемом формате.
545
numpy.savetxt
сохраняет массив в текстовый файл.
import numpy
a = numpy.asarray([ [1,2,3], [4,5,6], [7,8,9] ])
numpy.savetxt("foo.csv", a, delimiter=",")
numpy.array
строк. Не могли бы вы прописать метод сохранения в формате csv дляnumpy.array
объекта, содержащего строки?fmt='%s'
Вы можете использовать
pandas
. Требуется дополнительная память, так что это не всегда возможно, но очень быстро и просто в использовании.если вы не хотите заголовок или индекс, используйте
to_csv("/path/to/file.csv", header=None, index=None)
источник
df.to_csv("file_path.csv", header=None)
header=None, index=None
удаляют строку заголовка и столбец индекса.comments
аргумент ключевого слова в''
,#
будет подавлено.tofile
это удобная функция для этого:На странице руководства есть несколько полезных заметок:
Запись. Эта функция не создает многострочные CSV-файлы, она сохраняет все в одну строку.
источник
Запись массивов записей в виде CSV-файлов с заголовками требует немного больше работы.
Этот пример читает файл CSV с заголовком в первой строке, а затем записывает тот же файл.
Обратите внимание, что этот пример не рассматривает строки с запятыми. Чтобы рассмотреть кавычки для нечисловых данных, используйте
csv
пакет:источник
Как уже говорилось, лучший способ вывести массив в файл CSV - использовать
.savetxt(...)
метод. Тем не менее, есть определенные вещи, которые мы должны знать, чтобы сделать это правильно.Например, если у вас есть Numpy массив ,
dtype = np.int32
каки хотите сохранить, используя
savetxt
какОн будет хранить данные в экспоненциальном формате с плавающей запятой как
Вам придется изменить форматирование с помощью параметра с именем ,
fmt
какхранить данные в оригинальном формате
Сохранение данных в сжатом формате gz
Также
savetxt
может использоваться для хранения данных в.gz
сжатом формате, что может быть полезно при передаче данных по сети.Нам просто нужно изменить расширение файла как
.gz
numpy позаботится обо всем автоматическиНадеюсь, поможет
источник
fmt="%d"
было то, что я искал. Спасибо!Я считаю, что вы также можете сделать это довольно просто следующим образом:
например, № 1:
например, № 2:
источник
если вы хотите написать в столбце:
Здесь «a» - это имя массива numpy, а «file» - переменная для записи в файл.
Если вы хотите написать в строке:
источник
Если вы хотите сохранить массив (например
your_array = np.array([[1,2],[3,4]])
) в одну ячейку, вы можете сначала преобразовать его с помощьюyour_array.tolist()
.Затем сохраните его обычным способом в одну ячейку,
delimiter=';'
и ячейка в csv-файле будет выглядеть так[[1, 2], [2, 4]]
Тогда вы можете восстановить ваш массив следующим образом:
your_array = np.array(ast.literal_eval(cell_string))
источник
Вы также можете сделать это с чистым Python без использования каких-либо модулей.
источник
В Python мы используем модуль csv.writer () для записи данных в файлы csv. Этот модуль похож на модуль csv.reader ().
Разделитель - это строка, используемая для разделения полей. Значением по умолчанию является запятая (,).
источник