我想创建一个矩阵,其中包含来自我拥有的一系列 ODE 的参数。我有 5 个 ODE,它们的所有参数必须按特定顺序在这个矩阵中
但是我找不到最合乎逻辑的方法。我设置了一个 5x5 的零矩阵,并尝试用我的参数替换矩阵中的某些位置,但是这些参数之前没有定义,我按原样输入它们(未定义的值),因为我稍后会用到它们。我的代码是这样的:
import numpy as np
####create matrix
zeros = np.zeros((5,5))
params = ['-lambda', 'lambda', '-u-v', 'u', '-w', 'v', 'w','-gamma', 'gamma']
pos = [(0,0),(1,0),(1,1),(2,1),(2,2),(3,1),(3,2),(3,3),(4,3)]
rows, cols = zip(*pos)
zeros[rows, cols] = params
我想要编码的是这样的东西:
首先,
dtype
在创建初始str
零数组时需要numpy
ing;我们可以只输入行和列作为 x 和 y 位置的单独lists
:
import numpy as np
zeros = np.zeros((5, 5)).astype(str)
params = ['-lambda', 'lambda', '-u-v', 'u', '-w', 'v', 'w','-gamma', 'gamma']
posx = [0, 1, 1, 2, 2, 3, 3, 3, 4]
posy = [0, 0, 1, 1, 2, 1, 2, 3, 3]
zeros[posx, posy] = params
print(zeros)
输出:
[['-lambda' '0.0' '0.0' '0.0' '0.0']
['lambda' '-u-v' '0.0' '0.0' '0.0']
['0.0' 'u' '-w' '0.0' '0.0']
['0.0' 'v' 'w' '-gamma' '0.0']
['0.0' '0.0' '0.0' 'gamma' '0.0']]