在Python上通过While合并数组

2024-10-04 03:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python有些疑问

我正在尝试写一些东西,在每次原始输入之后,我应该向程序中输入一些数据(使用数组形式)。然后将这个数据(数组2 dimensioanl)添加到另一个满是零的2d数组中。然后,当我输入第二个数据时(它应该再次更改为2d数组),并且必须添加到已经包含带零的数组和来自input的数组的数组中)。因此,在每个输入之后,数组应该被添加到已经创建的数组中。这是密码。你知道吗

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

最后我得到的数组只有两个数组(带零的数组和最后输入的数据数组)

感谢您的关注和帮助


Tags: 数据from程序numpy密码inputvarzeros
1条回答
网友
1楼 · 发布于 2024-10-04 03:20:50

工作代码

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']]
>>> 

相关问题 更多 >