-1
分子のx、y、z座標を含むファイルを生成するコードがあります。これをいわゆる "xyzファイル"(file.xyz)にするために、私はこの座標ファイルに2つの行を追加する必要があります。1)上の行に原子の数が1つだけ含まれています。 2)空白のままにすることができるコメント行(または「コメント」など)。 xyz
と呼ばれる私の変数は、このnumpy配列に特定の要素を含む新しい行を追加する方が良い
print(xyz)
のように見えるの原子の数がlen(xyz)
で与えられる
[['C\t' '-3.171284' '-0.739715' '0.525945']
['N\t' '-1.936557' '-0.026021' '0.202474']
['C\t' '-3.318626' '-1.011529' '2.043242']
['H\t' '-3.141982' '-1.708867' '0.014441']
['C\t' '-0.741793' '-0.677286' '0.129631']
['C\t' '0.462397' '0.162645' '-0.307099']
['N\t' '1.631324' '-0.381016' '0.368999']
['C\t' '0.559996' '0.147611' '-1.856616']
['H\t' '0.300250' '1.202007' '0.017165']
['H\t' '2.526359' '-0.068732' '0.017635']
['H\t' '1.567511' '-1.380033' '0.529925']
['O\t' '-0.635852' '-1.906598' '0.361505']
['H\t' '-2.000386' '0.966116' '0.025368']
['C\t' '-4.387139' '0.003940' '0.016667']
['O\t' '-4.106128' '1.302132' '-0.374180']
['O\t' '-5.528310' '-0.455442' '-0.014098']
['H\t' '-4.923659' '1.755530' '-0.673289']
['H\t' '0.662313' '-0.882934' '-2.213554']
['H\t' '1.440364' '0.716422' '-2.178038']
['H\t' '-0.324051' '0.596253' '-2.326387']
['H\t' '-2.470166' '-1.616700' '2.369974']
['H\t' '-4.246949' '-1.555151' '2.240849']
['H\t' '-3.326402' '-0.071610' '2.604601']]
を与えます。
nbofatoms = len(xyz)
xyz = np.insert(xyz, 0, '', axis=0)
xyz = np.insert(xyz, 0, '', axis=0)
xyz[0][0] = nbofatoms
xyz[1][0] = 'Comment'
だから、もっと良い方法があります:私の望ましい出力は(ビット不器用な感じ)
print(xyz)
[[23 '' '' '']
['Comment' '' '' '']
['C\t' '-3.171284' '-0.739715' '0.525945']
['N\t' '-1.936557' '-0.026021' '0.202474']
['C\t' '-3.318626' '-1.011529' '2.043242']
['H\t' '-3.141982' '-1.708867' '0.014441']
['C\t' '-0.741793' '-0.677286' '0.129631']
['C\t' '0.462397' '0.162645' '-0.307099']
['N\t' '1.631324' '-0.381016' '0.368999']
['C\t' '0.559996' '0.147611' '-1.856616']
['H\t' '0.300250' '1.202007' '0.017165']
['H\t' '2.526359' '-0.068732' '0.017635']
['H\t' '1.567511' '-1.380033' '0.529925']
['O\t' '-0.635852' '-1.906598' '0.361505']
['H\t' '-2.000386' '0.966116' '0.025368']
['C\t' '-4.387139' '0.003940' '0.016667']
['O\t' '-4.106128' '1.302132' '-0.374180']
['O\t' '-5.528310' '-0.455442' '-0.014098']
['H\t' '-4.923659' '1.755530' '-0.673289']
['H\t' '0.662313' '-0.882934' '-2.213554']
['H\t' '1.440364' '0.716422' '-2.178038']
['H\t' '-0.324051' '0.596253' '-2.326387']
['H\t' '-2.470166' '-1.616700' '2.369974']
['H\t' '-4.246949' '-1.555151' '2.240849']
['H\t' '-3.326402' '-0.071610' '2.604601']]
私のソリューションすべきですか?
まず、ご注文は、コメント行であることの原子の数につながる、とコメント行は最初の行です。私が望むものではありません。さらに、これにより、2行目の4つの要素すべてに数字「23」が追加され、最初の行の4つの要素すべてに文字列「comment」が追加されます。これらの行の最初の要素に "23"と "Comment"を追加したいだけです。 – Yoda