在Python上连接数组

时间:2013-01-27 18:09:00

标签: python arrays numpy while-loop raw-input

我对python有一些疑问,

我正在尝试写一些东西,在每次原始输入之后,我应该输入一些数据(使用数组形式)。然后,应将此数据(数组2 dimensioanl)添加到另一个2 D数组Full of 0。然后当我输入第二个数据(它应该再次更改为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个数组连接(带有零的数组和最后输入的数据数组)

感谢您的关注和帮助

1 个答案:

答案 0 :(得分: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']]
>>>