TypeError: numpy.float64 object is not iterable
TypeError: numpy.float64 object is not iterable
运行 Python 脚本时出现错误:
使用代码
arr = np.array([[3, 4, 5], [5, 6, 7], [2, 3, 4]])
total = sum(sum(arr))
mean = sum(sum(arr))/(3*3)
for i in arr :
vr= i - mean
for med in vr**2 :
print(sum(med))
错误原因
您遇到此错误:
TypeError: 'numpy.float64' object is not iterable
您正在使用 for-loop 迭代假定数组:
for med in vr**2 :
表达式vr**2
不是数组,而是原始的float。
因此你得到这个错误。
解决方案
去掉第二个for-loop:
import numpy as np
arr = np.array([[3, 4, 5], [5, 6, 7], [2, 3, 4]])
total = sum(sum(arr))
mean = sum(sum(arr))/(3*3)
for i in arr :
vr = i - mean
print(sum(vr**2))
每个总和输出 3 行:
2
14
5
将此代码尝试为 demo in IDEone
建议:
始终 post error-outputs 作为问题 body 中的纯文本(不仅在标题中,而不是图像中)。这样我们就可以复制粘贴了。
med
是一个数字(浮点数),因此你不能计算它的总和(它的总和就是它本身)。此外,使用 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
运行 Python 脚本时出现错误:
使用代码
arr = np.array([[3, 4, 5], [5, 6, 7], [2, 3, 4]])
total = sum(sum(arr))
mean = sum(sum(arr))/(3*3)
for i in arr :
vr= i - mean
for med in vr**2 :
print(sum(med))
错误原因
您遇到此错误:
TypeError: 'numpy.float64' object is not iterable
您正在使用 for-loop 迭代假定数组:
for med in vr**2 :
表达式vr**2
不是数组,而是原始的float。
因此你得到这个错误。
解决方案
去掉第二个for-loop:
import numpy as np
arr = np.array([[3, 4, 5], [5, 6, 7], [2, 3, 4]])
total = sum(sum(arr))
mean = sum(sum(arr))/(3*3)
for i in arr :
vr = i - mean
print(sum(vr**2))
每个总和输出 3 行:
2
14
5
将此代码尝试为 demo in IDEone
建议: 始终 post error-outputs 作为问题 body 中的纯文本(不仅在标题中,而不是图像中)。这样我们就可以复制粘贴了。
med
是一个数字(浮点数),因此你不能计算它的总和(它的总和就是它本身)。此外,使用 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