2016-03-09 2 views
2

мой вопрос связан с this, но я не могу получить это решение для работы и не хочу добавлять свой собственный сценарий к старому вопросу.numpy.savetxt для 2d массива в Python 3.5.1

У меня есть 2D массив с плавающей точкой Numpy, бегу питон 3.5.1 с Numpy 1.10.4, и я пытаюсь записать массив с

numpy.savetext(filename, arrayname, delimiter = ',') 

, который работает прекрасно с 1D массив. Я попытался решение от ссылочного поста

with open(filename, 'ab') as f: 
    numpy.savetext(f, arrayname, delimiter = ',') 

не дало никаких результатов. На самом деле, я пытался это без разделителей, а также с «ш», «ВБ„а“и с аргументами форматирования, и всегда получаю то же сообщение об ошибке:

TypeError: Mismatch between array dtype ('float64') and format specifier. 

Мне нужно написать это 2D массив в файл, который будет считываться позже в фрейм данных panda (используется read.csv). Я понимаю, что это может быть проблемой с numpy.savetxt, поэтому я ищу альтернативу.

+1

Не является ли команда 'numpy.savetxt()'? – roadrunner66

+1

Хорошо, после игры еще немного теперь очевидно, что у меня на самом деле есть 3D-массив, а не 2d-массив, который мне нужно сохранить в файл, который можно было бы читать как в виде фрейма данных R (в конечном итоге переформатирован в длинный формат), либо как массив numpy. – zazizoma

ответ

2

Пожалуйста, попробуйте минимальный пример и опубликовать результат, так как выполнение следующих работ для меня: содержание

import numpy as np 

array1=np.array([[1,2],[3,4]]) 
np.savetxt('file1.txt', array1 , delimiter = ',') 

файла:

1.000000000000000000e+00,2.000000000000000000e+00 
3.000000000000000000e+00,4.000000000000000000e+00 
1

У меня было то же самое сообщение об ошибке - пока я наконец не понял, что тип моего вывода фактически был списком, а не массивом numpy!

Смежные вопросы