PyCharm与CMD运行同一段NumPy代码输出不一致问题求助
问题:PyCharm与CMD运行NumPy代码输出不一致
运行相同的NumPy代码时,PyCharm输出会显示np.float64类型标识,而CMD和在线编译器仅显示数值:
- PyCharm输出:
[np.float64(1.6000000000000003), -1] - CMD/在线编译器输出:
[1.6000000000000003, -1]
已尝试重装PyCharm中的NumPy,问题未解决。相关代码如下:
import numpy as np x_train = np.array([[10, 50], [20, 30], [25, 30], [20, 60], [15, 70], [40, 40], [30, 45], [20, 45], [40, 30], [7, 35]]) y_train = np.array([-1, 1, 1, -1, -1, 1, 1, -1, 1, -1]) n_train = len(x_train) w = [0, -1] a = lambda x: np.sign(x[0]*w[0] + x[1]*w[1]) N = 50 L = 0.1 e = 0.1 last_error_index = -1 for n in range(N): for i in range(n_train): if y_train[i]*a(x_train[i]) < 0: w[0] = w[0] + L * y_train[i] last_error_index = i Q = sum([1 for i in range(n_train) if y_train[i]*a(x_train[i]) < 0]) if Q == 0: break if last_error_index > -1: w[0] = w[0] + e * y_train[last_error_index] print(w)
解决方法
方法1:调整PyCharm控制台的NumPy显示规则
PyCharm的Python控制台默认会显示NumPy类型的完整信息,可通过设置修改:
- 打开PyCharm,进入
File > Settings > Build, Execution, Deployment > Console > Python Console - 在「Starting script」区域添加以下代码:
import numpy as np np.set_printoptions(formatter={'all': lambda x: str(x)})
- 保存设置并重启Python控制台,再次运行代码即可得到和CMD一致的输出。
方法2:手动转换类型后打印
修改代码中的打印语句,将NumPy类型转为Python原生类型:
# 方式一:列表推导式转换 print([float(item) if isinstance(item, np.float64) else item for item in w]) # 方式二:利用NumPy的tolist方法 print(np.array(w).tolist())
两种方式都能让输出只显示数值,不附带类型标识。
方法3:检查PyCharm的Python解释器是否与CMD一致
若PyCharm使用了虚拟环境或不同版本的Python/NumPy,也可能导致输出差异:
- 在CMD中执行
where python,查看当前使用的Python路径 - 在PyCharm中进入
File > Settings > Project: [你的项目名] > Python Interpreter - 切换到CMD对应的Python解释器,重新运行代码。
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

