2回目の編集
「stokes_line」は次のように生成されます。
os.system('pdv -t %s > temp.txt ' % epoch_name)
stokes_line = np.genfromtxt('temp.txt', usecols=3, dtype=[('stokesI','float')], skip_header=1)
os.system('vap -nc "mjd" %s >> mjd.txt' % new_y[i])
stokes_list[b] = stokes_line
「pdv」は、「stokes_line」で使用される数値を生成する別のプログラムからのコマンドです。
stokes_list は、新しい stokes_line を毎回ループで追加するだけです。
編集:
stokes_line は numpy.genfromtxt コマンドで作成され (したがって、txt ファイルから抽出されます)、float で構成され、次のようになります。
[(0.00126596,) (0.000621272,) (0.00058694,) ..., (0.0015368,) (0.000926448,) (7.95851e-05,)]
それらの束が集まって stokes_list を構成し、各 stokes_line は同じ数の float で構成されます。
genfromtxt がすべて角かっこであるリストを作成しているのではなく、何か他のもの (シーケンスと呼ばれます) を作成しているため、問題ですか??
私のラップトップ (python バージョン 2.7.3) で動作する python コードを書きましたが、大学のデスクトップ (python バージョン 2.5.2) では実行されないようです。
ここに多くのコードを表示しても役に立たないと思いますが、エラー メッセージは次の 2 行の 2 番目にあります。
os.system('vap -nc "mjd" %s >> mjd.txt' % new_y[i])
stokes_list[b] = stokes_line
「vap」は、いくつかの値を返す別のプログラムからのコマンドです。とにかく、問題の核心は、古いバージョンの Python で実行した場合にのみ、次のエラー メッセージが表示されることです。
ValueError: 配列要素をシーケンスで設定しています。
今、私は少し調査を行いましたが、問題はそのようなリストの長さに互換性がないことが原因であると言われていますが、そうである場合、新しいバージョンの Python で実行すると正常に動作するのはなぜですか。
どんな助けでも素晴らしいでしょう、ありがとう!