【问题标题】:print numpy str representation 2 n decimal places打印 numpy str 表示 2 n 位小数
【发布时间】:2025-12-03 00:30:01
【问题描述】:

我有一个运行良好的小脚本,只是我想控制输出显示的小数位数。

我以为我找到了我需要的东西:

https://markhneedham.com/blog/2017/11/19/python-3-typeerror-unsupported-format-string-passed-to-numpy-ndarray-format/

以及 * 上的其他一些类似帖子。

我的代码运行没有错误,但两个打印语句生成完全相同的输出。

将输出限制为 n 位小数的正确方法是什么? (在这个例子中我想要 2 个)。

代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
# from timeit import Timer


file = 'd:\\python\\codebasics\\machine_learning\\homeprices.csv'
df = pd.read_csv(file)
print(df)
print()
plt.xlabel('area(sqr ft)')
plt.ylabel('price(US$)')
plt.scatter(df.area, df.price, color='red', marker='+')
plt.show()

reg = linear_model.LinearRegression()
reg.fit(df[['area']], df.price)

print(reg.predict(3300))
print("{:2}".format(str(np.array(reg.predict(3300)))))



[628715.75342466]
[628715.75342466]

【问题讨论】:

  • 可能是print ("{:.2f}".format(float(reg.predict(3300))))?
  • 宾果游戏!就是这样。浮动(np.array(reg ...

标签: python-3.x numpy python-3.6


【解决方案1】:

"{:2}" 替换为"{:.2f}" 即可满足您的需求。 f 表示浮点数,.2 表示两位小数。

【讨论】:

  • 当我应用你的更改时我得到了这个:ValueError: Unknown format code 'f' for object of type 'str'