0
私は長さがn_x
の配列x
、長さがn_par1
の配列all_par1
と単一のパラメータpar2
を持っています。さらに、これらのパラメータを取る2つの関数func1
とfunc2
と入力としてx
があります。さまざまな関数の値を効率的に配列に取り込む方法は?
Iは、列の最初の半分はfunc1
の値とfunc2
からの値と後半が移入さ寸法n_x
X 2 * n_par1
持つ配列を作成します。
私は現在、このようにそれを実行します。
import numpy as np
def func1(x, par1):
return x/(par1 + x)
def func2(x, par1, par2):
return -par1 * x/((par2 + x) ** 2)
def populate_matrix(xvec, par1_vec, par2):
first_half = np.stack((func1(xvec, par1_i) for par1_i in par1_vec), axis=1)
second_half = np.stack((func2(xvec, par1_i, par2) for par1_i in par1_vec), axis=1)
return np.concatenate((first_half, second_half), axis=1)
np.random.seed(0)
all_par1 = [1., 2., 3.]
my_par2 = 5.
n_x = 2
x_variable_length = np.random.rand(n_x)
print x_variable_length
mat = populate_matrix(x_variable_length, all_par1, my_par2)
これは、例えば、次に私を与えますn_x
として
[[ 0.35434447 0.21532117 0.15464704 -0.01782479 -0.03564959 -0.05347438]
[ 0.416974 0.26340313 0.19250415 -0.02189575 -0.0437915 -0.06568725]]
が2であり、それは2つの行を有し、列の最初の半分は常に正であるfunc1
で生成され、常に負であるfunc2
の値と後半。
私はこの関数を何度も呼び出す必要があり、これが最も効果的な方法かどうか疑問に思っています。何か案は?
わからないことが重要であるが、実際の寸法は300×100ここで
それはうまく動作し、upvoted(私はしばらくの間、他の何かが表示されるかどうかを確認するのを待つ...) – Cleb