如何在np.array中将符号更改为sympy subs?

问题描述 投票:1回答:1

我尝试使用np.array矩阵中的sympy符号。但是,它不起作用。如何修理我的电线?

import numpy as np
from sympy import symbols, solve
dna_list = np.random.rand(10,2) 
data_list = np.random.rand(10,3)
alpha=np.sqrt([2])
x1 = dna_list[:,0]
x2 = dna_list[:,1]
m = data_list[:,1]
b = data_list[:,2]

RSMX= np.array([[6, 15*alpha, 1], [-2, 15, 1], [10, 15, 1], [-alpha*1, 10, 1], [6, 10, 1], [10*alpha, 10, 1], [-2, -5, 1], [10, -5, 1], [6, -alpha*5, 1]])

print(RSMX)
xhat1, xhat2 = symbols('xhat1, xhat2')

RSMy = (m)/(1-xhat1)+(m)/(1-xhat2)+(b)
print(RSMy)

SOLVE = RSMy.subs({xhat1:6, xhat2:15+alpha})

()----> 1 SOLVE = RSMy.subs({xhat1:6,xhat2:15 + alpha})中的AttributeError Traceback(最近一次调用)

AttributeError:'numpy.ndarray'对象没有属性'subs'

python numpy sympy
1个回答
0
投票

你使用的RSMynumpy阵列,没有subs方法。您应该为此数组中的每个元素应用subs方法。你可以这样做:

SOLVE = np.vectorize(lambda x: x.subs({xhat1:6, xhat2:15+alpha}))(RSMy)

另请注意,您使用的是alpha=np.sqrt([2]),它会返回一个数组,而不是数字。我建议你使用alpha=np.sqrt(2),在某些情况下它可能很关键。

© www.soinside.com 2019 - 2024. All rights reserved.