Используйте массив numpy в качестве аргументов для print () - PullRequest
0 голосов
/ 01 ноября 2018

Я борюсь за очень простую вещь.

Я хотел бы напечатать строку с определенным форматом:

import numpy as np
array = np.array([123.456789, 1.23456, 12.3456])
print("My First number is %3.4f, second %1.2f and third %2.9f" % array)

«массив» - это пустой массив, включающий аргументы (размер: (1,3)), которые я хотел бы напечатать. Но я получаю следующее сообщение об ошибке:

TypeError: в скаляры Python могут быть преобразованы только массивы размера 1

Это прекрасно работает

array = (123.456789, 1.23456, 12.3456)
print("My First number is %3.4f, second %1.2f and third %2.9f" % array)

Но у меня есть данные в виде массива. Есть ли простой способ преобразовать массив, чтобы использовать значения в качестве аргументов для форматированной печати pint ()?

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Это не работает, потому что оба не один и тот же объект. то есть первый массив numpy.ndarray

и второй работающий массив - кортеж.

так

чтобы запустить первый numpy.ndarray, попробуйте следующую строку

array1 = np.array ([123.456789, 1.23456, 12.3456])

print («Мое первое число% 3.4f, второе% 1.2f и третье% 2.9f», array1 [0], array1 [1], array1 [2])

0 голосов
/ 01 ноября 2018

Пропуск в кортеж:

print("My First number is %3.4f, second %1.2f and third %2.9f" % tuple(array))

Или используйте новый формат

array = np.array([123.456789, 1.23456, 12.3456])
print("My First number is {:3.4f}, second {:1.2f} and third {:2.9f}".format(*array))
>> My First number is 123.4568, second 1.23 and third 12.345600000
0 голосов
/ 01 ноября 2018

% форматер ожидает кортеж, если есть несколько элементов для форматирования в строку, это должно исправить это

 print("My First number is %3.4f, second %1.2f and third %2.9f" % (array[0],array[1],array[2]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...