Как распечатать массив в определенном формате?

У меня есть массив в таком формате:

[-22.99253267 -83.23210952  77.71126322  43.99377722 -41.75731176 89.02862477]

Я хотел бы распечатать этот массив, чтобы получить такой результат

[-22.992 -83.232  77.711  43.993 -41.757 89.028]

Я знаю, что будет аналогичный результат, если я использую np.set_printoptions(precision=3), но я хотел бы знать, как получить этот результат с помощью 9.3f.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
6 821
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Чтобы распечатать данные в столбце:

for data in x:
    print '{:9.3f}'.format(data)

или

Чтобы распечатать данные в строке: (не забудьте import sys)

for data in x:
    sys.stdout.write('{:9.3f}'.format(data))

Спасибо за ответ. У меня есть еще один вопрос. Как я могу распечатать это как строку, а не как столбец?

J. Park 04.11.2018 21:21

Я отредактировал вопрос, чтобы было понятнее, но ответ уже был здесь.

PilouPili 04.11.2018 21:32

Быстро спросите себя, NPE, если вы не против. Есть ли преимущества в том, чтобы печатать данные в строке, а не добавлять их в список?

Glazbee 04.11.2018 21:35

@BGlasbey предположим, что ваш массив состоит из тысяч данных с плавающей запятой, вам нужно будет сохранить этот список строк в памяти перед печатью. Так что это требует много памяти и времени. Просто распечатайте данные и покончите с этим.

PilouPili 04.11.2018 21:38

@ J.Park Речь не шла о сравнении формата строки с форматом столбца. Каждому это нравится так, как он хочет. Я считаю, что @BGlasbey хотел, чтобы я имел возможность сказать, что создание for numbers in list: x = '{:9.3f}'.format(data) y.append(x) print(y) - это пустая трата памяти и времени.

PilouPili 04.11.2018 21:44

Использование String.format ()

list = [-22.99253267, -83.23210952,  77.71126322,  43.99377722, -41.75731176, 89.02862477]
for numbers in list :
    print('{:9.3f}'.format(data))

Я получаю вывод

-22.993
-83.232
 77.711
 43.994
-41.757
 89.029

РЕДАКТИРОВАТЬ

Следуя комментарию OP, вот обновление, которое добавит все элементы в список.

y = []
list = [-22.99253267, -83.23210952,  77.71126322,  43.99377722, -41.75731176, 89.02862477]
for numbers in list:
   x = '{:9.3f}'.format(data)
   y.append(x)
print(y)

Выход

['  -22.993', '  -83.232', '   77.711', '   43.994', '  -41.757', '   89.029']

Возможно, под data вы имели в виду numbers в .format. Во-вторых, вы успешно преобразовали list в список строк!

Sohail 11.10.2020 06:54

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