Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy.float64不可编辑_Python_Function_Numpy_Iterable - Fatal编程技术网

Python numpy.float64不可编辑

Python numpy.float64不可编辑,python,function,numpy,iterable,Python,Function,Numpy,Iterable,我试图打印一个函数,该函数使用numpy数组和列表中的多个参数,但我不断得到错误“numpy.float 64 object is not iterable”。我在论坛上看了几个关于这个主题的问题,并尝试了不同的答案,但似乎都不起作用(或者我可能做错了什么,我还是python的初学者),但归根结底都是一样的,我被卡住了,希望你们能帮上忙。我使用的是python 2.7,代码如下: 编辑:包含错误消息并将打印更改为“打印(T,(obj(T),)” 来自未来进口部的 将numpy作为np导入 随机输

我试图打印一个函数,该函数使用numpy数组和列表中的多个参数,但我不断得到错误“numpy.float 64 object is not iterable”。我在论坛上看了几个关于这个主题的问题,并尝试了不同的答案,但似乎都不起作用(或者我可能做错了什么,我还是python的初学者),但归根结底都是一样的,我被卡住了,希望你们能帮上忙。我使用的是python 2.7,代码如下:

编辑:包含错误消息并将打印更改为“打印(T,(obj(T),)”

来自未来进口部的

将numpy作为np导入
随机输入
K=np.数组([1,1,1,1,1,1,1,1,1,1,]))
x=len(K)
#产品的生产率和需求率设置成本和持有成本(p、d、c、h)
p=np.数组([19324723189159])
d=np.数组([16,16,21,19,23])
#c1=np。数组([random.random()表示范围(x)]内的uu)使用这些值作为c的测试值
c=[0.752,0.768,0.263,0.152,0.994,0.449,0.431,0.154,0.772]
h=[0.10*c[i]/240,表示i在范围(x)]
n=len(p)
t=[10.76,74.61,47.54,29.40,45.00,90.48,17.09,85.19,35.33]
def obj(T):
对于范围(n)中的i:
对于范围(x)内的q:
对于范围(x)内的k:
返回((1./T)*c[q]+和(.5*h[k]*(p[i]-d[i])*(p[i]/d[i])*(T[k])**2)))
对于范围(200900)内的T:
打印(T,(obj(T),)
运行文件('C:/Users/Jasper/Anaconda2/Shirodkar.py',wdir='C:/Users/Jasper/Anaconda2')
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
运行文件('C:/Users/Jasper/Anaconda2/Shirodkar.py',wdir='C:/Users/Jasper/Anaconda2')
文件“C:\Users\Jasper\Anaconda2\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,运行文件第714行
execfile(文件名、命名空间)
文件“C:\Users\Jasper\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py”,第74行,在execfile中
exec(编译(脚本文本,文件名,'exec'),glob,loc)
文件“C:/Users/Jasper/Anaconda2/Shirodkar.py”,第24行,在
打印(T,(obj(T),)
文件“C:/Users/Jasper/Anaconda2/Shirodkar.py”,第21行,在obj中
返回((1./T)*c[q]+和(.5*h[k]*(p[i]-d[i])*(p[i]/d[i])*(T[k])**2)))
TypeError:“numpy.float64”对象不可编辑

我怀疑问题出在这里:

sum((.5*h[k]*(p[i]-d[i])* (p[i]/d[i])*(t[k])**2))

这个表达式的最终结果是一个浮点,不是吗?求和()的目的是什么?

我想问题出在这里:

sum((.5*h[k]*(p[i]-d[i])* (p[i]/d[i])*(t[k])**2))

这个表达式的最终结果是一个浮点,不是吗?sum()的作用是什么?

请发布完整的堆栈跟踪,包括发生错误的行。您认为循环中的无条件
返回有什么作用?请发布完整的堆栈跟踪,包括错误发生的那一行。你认为循环中的无条件
返回是什么?这是一个公式,用来计算不同产品的持有成本,这是数学:看看Python内置总和的文档:。它需要一个iterable(例如列表)作为其参数。但是,您试图将单个值(numpy.float64)相加。1/T[c(q)+∑_(k=1)^k▒【1/(2)*h^k(p^k-d^k)(p^k/d^k)(t^k)**2当你的综合答案让我意识到sum()不需要时,它现在就可以了!这是一个计算不同产品持有成本的公式,这是数学:看看Python内置sum的文档:。它需要一个可引用的(例如列表)它的参数。但是,您尝试将单个值(numpy.float64)相加。1/T[c(q)+∑_(k=1)^k▒【1/(2)*h^k(p^k-d^k)(p^k/d^k)(t^k)**2当你的综合答案让我意识到不需要总和时,它现在起作用了!