假设有一变量 x_1,x_1的值为[1:10]中的某一个。还有bay_1,bay_2,...bay_10.共10个矩阵。
我想让x_1=1时,对bay_1矩阵进行操作(更新数据),x_1=2时,对bay_2矩阵进行操作,其余同理。
下面代码是其中的一部分,以此举例。(python3.7)
import numpy as np
bay_7 = [[121, 7, 1, 1, 1], [122, 7, 2, 1, 1], [123, 7, 3, 1, 1], [124, 7, 4, 1, 1], [125, 7, 5, 1, 1], [126, 7, 1, 2, 0], [127, 7, 2, 2, 1],
[128, 7, 3, 2, 1], [129, 7, 4, 2, 1], [130, 7, 5, 2, 1], [131, 7, 1, 3, 0], [132, 7, 2, 3, 1], [133, 7, 3, 3, 1], [134, 7, 4, 3, 1],
[135, 7, 5, 3, 1], [136, 7, 1, 4, 0], [137, 7, 2, 4, 0], [138, 7, 3, 4, 1], [139, 7, 4, 4, 0], [140, 7, 5, 4, 0]]
bay_7 = np.array(bay_7)
x_1 = [133, 7, 3, 3, 0]
如果我用下面这行代码来对bay_7进行修改,倒是可行,
bay_7[np.where(bay_7[:, 0]==x_1[0])]=x_1
其他的矩阵也可以用if,elif语句逐个进行判断,但是我想用eval这类的函数对它进行操作,就是为了简化代码。然后我自己写的eval代码如下:
eval('bay_'+str(x_1[1])+'[np.where(bay_'+str(x_1[1])+'[:,0]==x_1[0])] = x_1')
然后他就提示我如下错误:
eval('bay_'+str(x_1[1])+'[np.where(bay_'+str(x_1[1])+'[:,0]==x_1[0])] = x_1')
File "", line 1
bay_7[np.where(bay_7[:,0]==x_1[0])] = x_1
^
SyntaxError: invalid syntax
请问,这种问题要怎么修改才可行?