0

Pythonについて質問がありました。

私は何かを書き込もうとしています。各raw入力の後に、プログラムにデータを(配列形式で)入力する必要があります。次に、このデータ(配列2 dimensioanl)を、ゼロでいっぱいの他の2D配列に追加する必要があります。次に、2番目のデータを入力すると(再び2 D配列に変更する必要があります)、ゼロの配列と入力からの配列が既に含まれている配列に追加する必要があります)。したがって、各入力の後に、すでに作成されている配列を配列に追加する必要があります。これがコードです。

from numpy import *

var=zeros(shape=(1,11)) #making 2D array with zeros

while True: 

    file=raw_input("write data file name or path")

    c=open(file, 'r')
    ArrayStr=loadtxt(c, dtype='S',) #making array

    var=vstack((ArrayStr, var)) # concatantaing array 
print var

したがって、最終的に、2つの配列のみが連結された配列(ゼロと最後に入力されたデータ配列を持つ配列)を取得しています。

注意と助けをありがとう

4

1 に答える 1

0

作業コード

in1.txt

ATOM
1
C1
POS
X
1
16.774
117.860
10.374
1.00
0.00

in2.txt

ATOM
2
C2
POS
X
2
18.774
17.860
30.374
2.00
0.00

コード

import numpy

zeros = numpy.zeros(shape=(1,11)) #making 2D array with zeros

var = None

for i in range(1, 3):
    i1 = open("in" + str(i) + ".txt")

    a = numpy.loadtxt(i1, dtype='S')

    if var is None:
        var = numpy.vstack((a, zeros))
    else:
        var = numpy.vstack((var, a, zeros))

print var

出力

>>> 
[['ATOM' '1' 'C1' 'POS' 'X' '1' '16.774' '117.860' '10.374' '1.00' '0.00']
 ['0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0']
 ['ATOM' '2' 'C2' 'POS' 'X' '2' '18.774' '17.860' '30.374' '2.00' '0.00']
 ['0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0' '0.0']]
>>> 
于 2013-01-31T20:42:17.613 に答える