Python Numpy TypeError:&x27;numpy.float64';对象是不可编辑的

Python Numpy TypeError:&x27;numpy.float64';对象是不可编辑的,python,numpy,runtime-error,Python,Numpy,Runtime Error,运行Python脚本时出现错误: 使用的代码 arr=np.array([[3,4,5],[5,6,7],[2,3,4]] 总计=总和(总和(arr)) 平均值=总和(总和(arr))/(3*3) 对于arr中的i: vr=我的意思是 对于vr**2中的med: 打印(金额(中)) 错误原因 您得到了以下错误: TypeError:“numpy.float64”对象不可编辑 您正在使用for循环迭代假定的数组: 适用于vr**2中的med: 表达式vr**2不是数组,而是基本浮点 因此你得到

运行Python脚本时出现错误:

使用的代码
arr=np.array([[3,4,5],[5,6,7],[2,3,4]]
总计=总和(总和(arr))
平均值=总和(总和(arr))/(3*3)
对于arr中的i:
vr=我的意思是
对于vr**2中的med:
打印(金额(中))
错误原因 您得到了以下错误:

TypeError:“numpy.float64”对象不可编辑

您正在使用for循环迭代假定的数组:

适用于vr**2中的med:
表达式
vr**2
不是数组,而是基本浮点

因此你得到了这个错误

解决方案 删除第二个for循环:

将numpy导入为np
arr=np.数组([[3,4,5],[5,6,7],[2,3,4]]
总计=总和(总和(arr))
平均值=总和(总和(arr))/(3*3)
对于arr中的i:
vr=我的意思是
打印(总和(vr**2))
每个总和的输出为3行:

2
14
5
请按以下方式尝试此代码:


忠告:
始终在问题正文中以纯文本形式发布错误输出(不仅仅是标题,而不是图像)。所以我们可以复制粘贴。

med
是一个数字(float),因此您不能取它的和(它的和就是它本身)。此外,使用Numpy的主要目的是避免循环,并立即进行数组计算。大概是这样的:

arr = np.array([[3, 4, 5], [5, 6, 7], [2, 3, 4]])

total = arr.sum()
mean = total/arr.size #equivalent of total=arr.mean()
vr = ((arr - mean)**2).sum() #equivalent of var=np.var(arr)*arr.size

欢迎使用SO,Ade:)请使用正确的代码格式。仅仅发布一个链接被认为是不好的做法(图像可以嵌入,直接显示)。阅读并做一个介绍。你的问题是进一步错过了预期的结果。您想用代码实现什么,打印出一个数字“21”?
mean
赋值的当前右侧是否真的等同于
total=arr.mean()
?无论如何,我用@hc\u dev测试了它应该是。它计算数组的平均值:。在您的链接中,您使用的是python2,其中
/
将导致被除数和除数均为整数(本例中就是这种情况)。将其替换为
mean=float(arr.sum())/arr.size
,您将看到它们产生相同的输出。但是,Python3不需要进行此更改,因为默认情况下它会导致float。