Python“ ValueError:使用序列设置数组元素。” 我看不到哪一部分不起作用

斯宾塞·索内菲尔德

以下代码的目标是将功能“ ddW”插入odeint中,以找到给定X的W(以后)。我正在使用打印功能来确保功能运行)。

import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint
import pint
u = pint.UnitRegistry()

R = 8.31446261815324  * u.J/(u.mol*u.K)
Rgas = R.to            (u.atm*u.L/(u.mol*u.K))

P0  = 10    * u.atm
T   = 400   * u.K
v0  = 2     * u.L/u.min
α   = 0.02  * u.kg**-1

k   = 1.4   * u.L**2/(u.mol*u.kg*u.min)

FA0 = 0.5*P0*v0/(Rgas*T) #Assuming I.G.

def ddW(param,w):                               #param: [X,P]
    X       = param[0]
    P       = u.Quantity(param[1]).magnitude    * u.atm
    W       = u.Quantity(w).magnitude           * u.kg

    d       = np.zeros(2)
    d[0]    = k*FA0/(v0**2*P0)  * P*W*(1-X)     #dX/dW
    d[1]    = -α/2 *P0**2       * (1-X)/P       #dP/dW
    return d

param0 = [0,P0]
Wrange = np.linspace(0,100) *u.kg

#PBR     = odeint(ddW,param0,Wrange)


#plt.plot(Wrange,PBR)

print(ddW(param0,0))
Traceback (most recent call last):

  File "<ipython-input-1-83022bc3b5da>", line 1, in <module>
    runfile(REDACTED, wdir=REDACTED)

  File "C:\Users\Spencer\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "C:\Users\Spencer\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "REDACTED", line 43, in <module>
    print(ddW(param0,0))

  File "REDACTED", line 33, in ddW
    d[1]    = -α/2 *P0**2       * (1-X)/P       #dP/dW

ValueError: setting an array element with a sequence.

直到我在第29行定义W为止,我之前对于第32行(定义d [0])都遇到了相同的错误消息。令我困扰的是d [1]的输入都没有(据我所知) )的尺寸> 1,因此应该合适。

艾玛·迪瑞(Emrah Diril)

假设您对第32行的定义(定义d [0])将替换wW您获得的大小w,则您需要对要放入d [1]的数量执行相同的操作。

=32行的右侧是无量纲的Quantity对象,而第=33行的右侧是其Quantity尺寸standard_atmosphere / kilogram不能按d原样放入数组对象,因为它仅需为大小,因此可以转换为float类型。

如果要保留数组d类型,请尝试以下操作float

val     = -a/2 *P0**2       * (1-X)/P       #dP/dW
d[1]    = val.magnitude

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python Numpy ValueError:使用序列设置数组元素

ValueError:使用序列 python,numpy 设置数组元素

Python Numpy错误:ValueError:使用序列设置数组元素

Python 3确定“或”操作的哪一部分是正确的

数组局部变量的哪一部分存储在堆栈中?哪一部分在堆上?

语言的哪一部分禁止更改std :: set的元素

Windows中的系统文件缓存使用RAM的哪一部分?

应用程序的哪一部分应该投入使用?

Python提取json元素的一部分

我应该使用targetDataLine的哪一部分,以便通过FFT算法将音频转换为频率数据?

突变数组的一部分不起作用

C89标准的哪一部分允许使用“隐式int”规则?

如何使用HTML5画布找出单击圆圈的哪一部分?

使用Clang ++和LLD进行构建时,仍涉及GCC的哪一部分?

Python:仅使用shapefile的一部分

查找字符串的哪一部分与正则表达式python不匹配

有没有一种方法可以让JavaScript记住随机选择数组的哪一部分?

如何使用python在硒中按ID名称的一部分查找元素

如何使用Selenium WebDriver和Python检索元素的文本的一部分?

在python中使用xpath,如何只选择元素的一部分?

标准的哪一部分确定就地成员与初始化程序列表的优先级?

我如何使用python在Excel单元格中仅加粗字符串的一部分

未定义“ void”“ objects”的声明:C ++标准的哪一部分禁止使用它们?还是呢?

是否有办法仅查看生成的核心文件来定位过程的哪一部分使用了最多的内存?

Unity突破游戏改变球的方向,基于它使用C#碰撞产生的球拍的哪一部分

使用Python,如何根据匹配的部分替换路径的一部分?

python列表操作来比较元素的一部分而不是完整的元素

Python:如何在列表中找到与元素名称的一部分匹配的元素

如何在python中将数组的一部分存储在不同的数组中