小编Sha*_*aun的帖子

索引 4 超出尺寸为 4 的轴 1 的范围 双和代码

您好,我有以下函数会产生越界错误:

import numpy as np
import pylab as plt
import scipy
import math
import sympy as sy


T = sy.Symbol('T')
rho = sy.Symbol('rho')


g_T   = [1,T,T**2,T*sy.log(T),T**2*sy.log(T)]
g_rho  = [1,rho,rho**2,rho*sy.log(rho),rho**2*sy.log(rho)]

g_T_np = np.asarray(g_T)
g_rho_np = np.asarray(g_rho)


c = np.loadtxt("c_test.txt")


def F(T,rho):
    ret = 0
    for n in xrange(1,5):
        for m in xrange(1,6):
            inner= c[n,m]*g_T_np*g_rho_np
        ret += inner
    return ret

print F(T,rho)
Run Code Online (Sandbox Code Playgroud)

其中 .txt 文件如下所示:

-0.529586   -0.000208559    -3.36563E-09    2.29441E-05 
2.22722E-06 -0.00014526 -2.48888E-09    1.89488E-05 
-6.26662E-05    0.000421028 6.17407E-09 -5.14488E-05    
0.09977346  -0.000622051    -8.56485E-09    7.49956E-05 
-0.01437627 …
Run Code Online (Sandbox Code Playgroud)

python out bounds

4
推荐指数
1
解决办法
9万
查看次数

使用循环更改绘图中的颜色

我知道这个问题被问了十几次,但我在我的具体例子中需要帮助。我只是不知道为什么它不起作用。

最后我想要 150 条不同的行,但现在我只想用 10 行来测试它。

目的是遍历颜色图,我的代码如下所示:

import matplotlib.pyplot as plt

jet= plt.get_cmap('jet')
colors = iter(jet(np.linspace(0,1,10)))
for k in range(0,10):
    plt.plot(u_ordered[0*k:42*(k+1)], T_ordered[0*k:42*(k+1)], 'o',
color=next(colors))


plt.xscale('log')
plt.ylabel('T [K]')
plt.xlabel('log u [KJ/g]')
plt.title('T - U (at const. Rho) Plot')
plt.legend(loc="lower right")
plt.savefig('T_u_const_rho_Plot1.pdf')
plt.show()
Run Code Online (Sandbox Code Playgroud)

我一直在为所有 150 行获取此信息: 在此处输入图片说明

python plot colors matplotlib

3
推荐指数
1
解决办法
1万
查看次数

python:更改符号变量并分配数值

为了计算导数和其他表达式,我使用了 sympy 包并说T = sy.Symbol('T')现在我已经计算了正确的表达式:

E= -T**2*F_deriv_T(T,rho)
Run Code Online (Sandbox Code Playgroud)

在哪里

def F_deriv_rho(T,rho):
    ret = 0
    for n in range(5):
        for m in range(4):
            inner= c[n,m]*g_rho_deriv_rho_np*g_T_np
        ret += inner
    return ret
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

F_deriv_rho: [0.0 7.76971e-5*T 0.0001553942*T**2*rho T*(-5.14488e-5*log(rho) - 5.14488e-5)*log(T) + T*(1.22574e-5*log(rho)+1.22574e-5)*log(T) + T*(1.89488e-5*log(rho) + 1.89488e-5)*log(T) + T(2.29441e-5*log(rho) + 2.29441e-5)*log(T) + T*(7.49956e-5*log(rho) + 7.49956e-5)*log(T) T**2*(-0.0001028976*rho*log(rho) - 5.14488e-5*rho)*log(T) + T**2*(2.45148e-5*rho*log(rho) + 1.22574e-5*rho)*log(T) + T**2*(3.78976e-5*rho*log(rho) + 1.89488e-5*rho)*log(T) + T**2*(4.58882e-5*rho*log(rho) + 2.29441e-5*rho)*log(T) + T**2*(0.0001499912*rho*log(rho) + 7.49956e 5*rho)*log(T)]

使用python我想将T(和rho)作为一个符号更改为一个值。我怎么能那样做?

因此,我想创建 10 个类似的数字,T_def = np.arange(2000, 10000, …

python variables symbols sympy

2
推荐指数
1
解决办法
7917
查看次数

标签 统计

python ×3

bounds ×1

colors ×1

matplotlib ×1

out ×1

plot ×1

symbols ×1

sympy ×1

variables ×1