0

我对python有一些疑问,

我正在尝试写一些东西,在每个 raw-input 之后,我应该将一些数据(以数组形式)输入到程序中。然后这个数据(数组 2 dimensioanl )应该被添加到另一个 2D 数组全零。然后,当我输入第二个数据时(它应该再次更改为二维数组)并且必须添加到已经包含带有零的数组和来自输入的数组的数组中)。因此,在每个输入之后,应该添加已经创建的数组。这是代码。

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 回答