使用numpy数组作为print()的参数

时间:2018-11-01 15:43:55

标签: python arrays numpy

我正在努力做一件非常简单的事情。

我要打印某种格式的字符串:

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)

“ array”是一个numpy数组,包含我要打印的参数(大小:(1,3))。但是我收到以下错误消息:

  

TypeError:只有大小为1的数组可以转换为Python标量

这很好

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

但是我的数据确实是一个numpy数组。有没有简单的方法可以将数组转换为将值用作格式化的打印pint()的参数?

3 个答案:

答案 0 :(得分:1)

传递给元组:

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

或使用new format

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

答案 1 :(得分:0)

%格式化程序期望一个元组,如果有多个项目要格式化为字符串,这应该可以解决

 print("My First number is %3.4f, second %1.2f and third %2.9f" % (array[0],array[1],array[2]))

答案 2 :(得分:0)

它不起作用,因为它们都不是同一对象。 那是第一个数组是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])