Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 14, 2009 17:36:44

arikitik
От:
Зарегистрирован: 2009-12-14
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

Есть массив 2501х5000, при печати имею следующее

print(ST)
[[ 0.00260473+0.j 0.00260473+0.j 0.00260473+0.j …,
0.00260473+0.j 0.00260473+0.j 0.00260473+0.j ]
[ 0.00531565-0.00154458j 0.00531565-0.00154458j 0.00531565-0.00154458j
…, 0.00531565-0.00154458j 0.00531565-0.00154458j
0.00531565-0.00154458j]
[ 0.00440922-0.00070652j 0.00440919-0.00070654j 0.00440916-0.00070657j
…, 0.00440930-0.00070644j 0.00440927-0.00070647j
0.00440925-0.00070649j]
…,
[ 0.16353356-0.09085126j 0.10043139-0.13130249j 0.04599444-0.12624614j
…, -0.00937937+0.0968934j 0.11994802+0.09408932j
0.18579881+0.00177086j]
[ 0.16324805-0.09067767j 0.10018040-0.13117995j 0.04572540-0.12617488j
…, -0.00950416+0.09642532j 0.11951940+0.09398752j
0.18541231+0.00190855j]
[ 0.16296273-0.09050441j 0.09992943-0.13105728j 0.04545634-0.12610296j
…, -0.00962667+0.09595935j 0.11909231+0.09388556j
0.18502644+0.00204564j]]

При записи в файл с помощью file.write(str(ST)) имею такой же кусок как и с print. Собственно вопрос, как выводить на экран весь массив без многоточий и как записать его в текстовый файл в виде строк и столбцов. Заранее спасибо!



Офлайн

#2 Дек. 14, 2009 17:46:59

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

arikitik
массив
Можете сказать, что в данном случае есть “массив”, т.к. в Python такого понятия как-бы нет (есть списки, кортежи, …), вы пользуетесь какой-то библиотекой?



Офлайн

#3 Дек. 14, 2009 18:18:21

arikitik
От:
Зарегистрирован: 2009-12-14
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

да, я использую numpy.

In : type(ST)
Out: <type ‘numpy.ndarray’>



Офлайн

#4 Дек. 14, 2009 18:28:29

Renji
От:
Зарегистрирован: 2009-12-14
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

Посмотри в сторону for, думаю с ним можно что-то сделать.
for i in ST:
file.write(str(i))



Офлайн

#5 Дек. 14, 2009 18:51:51

arikitik
От:
Зарегистрирован: 2009-12-14
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

можно конечно и так, но мне кажется, что это неправильный путь. и к тому же, print получается тоже в цикле делать?)



Офлайн

#6 Дек. 14, 2009 18:59:03

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

arikitik
можно конечно и так, но мне кажется, что это неправильный путь. и к тому же, print получается тоже в цикле делать?)
Судя по всему у класса <type ‘numpy.ndarray’> переопределен __repr__ и __str__ так, чтобы print отпечатывал массив с расчетом увидеть только его структуру (очень странно было бы отпечатывать 2501х5000, так как это не нужно). Соответственно str(ST) дает такой же результат. Вам действительено нужно оспользовать цикл для вывода данных в файл.



Офлайн

#7 Дек. 14, 2009 19:09:42

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

или самому переопределить __repr__ или __str__ =D



Офлайн

#8 Дек. 14, 2009 19:15:41

arikitik
От:
Зарегистрирован: 2009-12-14
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

дело в том, что не всегда объём данных столь велик, как в данном случае (12 млн значений). подобный вывод наблюдается даже с относительно малым количеством значений.
есть ещё одно “но”. при попытке сделать
for i in ST:
file.write(str(i))

вывод крайне странен.
выложил текстовый файл с выводом http://slil.ru/28343903



Отредактировано (Дек. 14, 2009 19:31:11)

Офлайн

#9 Дек. 14, 2009 19:17:47

arikitik
От:
Зарегистрирован: 2009-12-14
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

хорошо бы услышать мнение человека, работавшего с numpy. надеюсь тут такие есть, всё таки популярный проект.



Офлайн

#10 Дек. 14, 2009 20:37:37

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

вопрос по сохранению массива в файл и печати массива с помощью print

Взгляните по ссылке, http://www.scipy.org/Tentative_NumPy_Tutorial. Там чуть ниже есть раздел Printing arrays, там указано как отключить такое поведение print, как вы описали.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version