如果我在装有 numpy 1.16.2 的 Windows 笔记本电脑上运行以下代码,它就可以工作。但是,当我在带有 numpy 1.16.4 或 1.16.2 的 Mac 上运行此代码时,它不会并给出以下错误:
以 10 为基数的 int() 的文字无效:“34.623659...”
我们尝试在 mac 设备上安装不同版本的 numpy,但是,同样的事情发生了。将 int 更改为 float 是可行的,但是,我们希望以整数形式显示值。
我们正在使用的命令:
A = np.loadtxt('ex2data1.txt', delimiter=',', dtype ='int', max_rows = 5)
print(A)
Run Code Online (Sandbox Code Playgroud)
文本文件的第一行是:
34.62365962451697,78.0246928153624,0
30.28671076822607,43.89499752400101,0
35.84740876993872,72.90219802708364,0
60.18259938620976,86.30855209546826,1
79.0327360507101,75.3443764369103,1
45.08327747668339,56.3163717815305,0
61.10666453684766,96.51142588489624,1
75.02474556738889,46.55401354116538,1
76.09878670226257,87.42056971926803,1
84.43281996120035,43.53339331072109,1
95.86155507093572,38.22527805795094,0
75.01365838958247,30.60326323428011,0
82.30705337399482,76.48196330235604,1
69.36458875970939,97.71869196188608,1
39.53833914367223,76.03681085115882,0
53.9710521485623,89.20735013750205,1
Run Code Online (Sandbox Code Playgroud)
我们期望它返回一个与文本文件中的值相同但为整数形式的数组,但是,我们收到了上面的错误。
你需要float:
A = np.loadtxt('ex2data1.txt', delimiter=',', dtype =float, max_rows = 5).astype(int)
Run Code Online (Sandbox Code Playgroud)