设置一个带有参数的numpy数组

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

我想创建一个矩阵,其中包含来自我拥有的一系列 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

我想要编码的是这样的东西:

python arrays numpy matrix linear-algebra
1个回答
0
投票

首先,

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']]
© www.soinside.com 2019 - 2024. All rights reserved.