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



我正在为一件非常简单的事情而挣扎。

我想打印一个特定格式的字符串:

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:只有size-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数组。有没有一种简单的方法可以转换数组,将值用作格式化打印pin((的参数?

传递到元组:

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

如果有多个项目要格式化到字符串中,%formatter需要一个元组,这应该会修复

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

它不起作用,因为两者不是同一个对象。第一个数组是numpy.ndarray

第二个数组是元组。

所以

为了运行第一个numpy.ndarray,请尝试以下行

array1=np.array([123.4567891.2345612.3456](

打印("我的第一个号码是%3.4f,第二个是%1.2f,第三个是%2.9f",array1[0],array1[1],array1[2](

最新更新