繁体   English   中英

写很多列(超过20)

[英]Write many columns (more than 20)

我想知道一种使用 Python 将许多列写入单个文件的有效且简单的方法。

例如,我有ab arrays,N 行的大小为 20。 每行都有不同ab

我想写一个格式如下的文件:

每列的名称

0 a[0] b[0] a[1] b[1] ... a[19] b[19]

1 a[0] b[0] a[1] b[1] ....a[19] b[19]

我只能这样想:

data = open(output_filename,'w') 
for i in range(0, N): 
    data.write('{} {} {} ...\n'.format(i, a[0], b[0], ....))
import numpy 
#Assuming a, b are numpy arrays, else convert them accordingly:
# a= np.array(a)
# b= np.array(b)

c = np.zeros((100,40))

for i in range(20):
    c[:, 2*i] = a[:,i]
    c[:, 2*i+1] = b[:,i]

np.savetxt("test.txt",c)

这是我能想到的最简单的方法。

如果我理解正确,您想交错两个列表。 您可以使用zip和一些后处理来做到这一点:

>>> a = ['a', 'b', 'c']
>>> b = ['d', 'e', 'f']
>>> print(list(zip(a, b)))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
>>> from itertools import chain
>>> print(list(chain.from_iterable(zip(a, b))))
['a', 'd', 'b', 'e', 'c', 'f']
>>> print(' '.join(chain.from_iterable(zip(a, b))))
a d b e c f

你可能想应用这样的东西:

data.write('{} {}\n'.format(i, ' '.join(chain.from_iterable(zip(a, b)))))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM