我正在努力做一件非常简单的事情。
我要打印某种格式的字符串:
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()的参数?
答案 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])