Сохранение построчного текста с помощью NumPy с предварительно определенным разделителем - PullRequest
0 голосов
/ 09 мая 2018

Допустим, у меня есть два numpy массива x и y, и я хочу сохранить их в txt с вкладкой в ​​качестве разделителя (\t) и их соответствующим типом (x является float и y - это integer) и определенный формат. Например:

import numpy as np
x=np.random.uniform(0.1,10.,4)
y=np.random.randint(10,size=4)

Если я просто использую np.savetxt('name.txt',(x,y)), это то, что я получаю:

6.111548206503401026e+00 4.208270401300298058e-01 5.914485954766230957e-01 6.652272388676337966e-01
6.027109785846696433e+00 1.024051075089774443e+01 3.358386699980072621e+01 7.652668778594046151e-01

Но мне нужен файл txt по строкам, поэтому я следовал этому решению: numpy массив в файл, np.savetxt

и бу, используя np.savetxt('name.txt',np.vstack((x,y)).T,delimiter='\t') Я получаю:

2.640596763338360020e+00    4.000000000000000000e+00
8.693117057064670306e+00    4.000000000000000000e+00
3.891035166453641558e+00    6.000000000000000000e+00
9.044178202861068883e+00    2.000000000000000000e+00

Пока здесь все в порядке, но, как я уже говорил, я хочу, чтобы вывод имел соответствующий тип данных и некоторое форматирование, поэтому я попытался np.savetxt('name.txt',np.vstack((x,y)).T,fmt=('%7.2f,%5i'),delimiter='\ ...: t'), и получилось:

   2.64,    4
   8.69,    4
   3.89,    6
   9.04,    2

, который имеет соответствующий формат и тип данных, но добавляет , после столбцов. Кто-нибудь знает, как избавиться от этой , напечатанной после колонки?

1 Ответ

0 голосов
/ 09 мая 2018

Запятая находится в вашей строке fmt. Замените его на fmt='%7.2f %5i', вот так:

np.savetxt('name.txt',np.vstack((x,y)).T,fmt='%7.2f %5i')

Обратите внимание, что разделитель табуляции (delimiter='\t') не является обязательным, поскольку np.vstack((x,y)).T заполняет только один столбец. Если вам нужна вкладка между значениями, измените строку формата на fmt='%7.2f \t%5i' или альтернативно:

np.savetxt('name.txt',np.vstack((x,y)).T,fmt=('%7.2f', '%5i'), delimiter='\t')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...