宇宙マイクロ波背景放射のヘルシーな地図があります。各マップには 3 つのフィールドがあります。一般的な数のマップの最初のフィールドのパワー スペクトルを計算するために、コード内に次の関数を記述しました。
def ps_TT(files):
c=[]
for i in range (0, len(files)):
#reads each map in turn
lmap=hp.read_map(files[i], field=(0,1,2))
#calculates the power spectra for all fields for each map
cl_lmap=hp.sphtfunc.anafast(lmap)
#selects the first field of the power spectra calculated for each map
cl_TT=cl_lmap[0]
#puts the results in the list c
c.append(cl_TT)
return c
「files」入力は、文字列としてのマップ ファイル名の配列です。上記のコードは、ipython の 10 個のマップに対して次の出力を返します。
In [4]: print ps_TT
[array([ 5.17445252e-04, 1.14526987e-03, 1.73325663e+03, ...,
2.38082865e-04, 2.50555631e-04, 2.53376503e-04]), array([ 1.45351786e-02, 6.01176345e-03, 1.27994240e+03, ...,
2.45848964e-04, 2.57155084e-04, 2.61421094e-04]), array([ 1.50848754e-03, 1.20842536e-02, 4.24761289e+02, ...,
2.56162191e-04, 2.47074545e-04, 2.58200020e-04]), array([ 7.59059129e-04, 1.40839130e-03, 1.00377030e+03, ...,
2.56563612e-04, 2.52381965e-04, 2.49896550e-04]), array([ 5.13876807e-04, 2.05938986e-02, 2.90047155e+02, ...,
2.53182443e-04, 2.50890172e-04, 2.50914303e-04]), array([ 1.54646117e-02, 6.75181707e-03, 1.90852416e+03, ...,
2.42936214e-04, 2.60074106e-04, 2.40752858e-04]), array([ 2.24837030e-02, 1.25850426e-03, 1.68506209e+03, ...,
2.51372591e-04, 2.45068513e-04, 2.50685742e-04]), array([ 2.16127178e-03, 6.70720310e-03, 1.55092736e+03, ...,
2.56133055e-04, 2.55980054e-04, 2.47690501e-04]), array([ 3.62577651e-05, 2.76265910e-03, 1.39297592e+03, ...,
2.64044826e-04, 2.67847727e-04, 2.56234516e-04]), array([ 7.69252941e-03, 4.32015790e-04, 1.34833309e+03, ...,
2.42188570e-04, 2.53480172e-04, 2.42193006e-04])]
これには、リスト内に 10 個の配列があります。各配列には、特定のマップの最初のフィールド パワー スペクトル データがあります。私ができるようにしたいのは、コード内のこのリスト内の個々の配列を呼び出して、データの個々の配列ごとに関数を実行することです。
配列内のページ配列を見ましたか? Pythonで配列のリスト内の要素にアクセスしますが、期待したほど役に立ちませんでした。