将循环中的数组保存到列中的一个txt文件中

时间:2019-02-06 08:41:53

标签: python arrays numpy

我正在创建一个零数组(587x1),在该数组中,我想在数组的特定行中将零替换为一个零,以作为来自另一个文件的索引。到目前为止,这部分在我的代码中工作正常。

然后,我想将所有这些新创建的数组保存在一个txt文件中,彼此相邻,以制表符分隔。但是,我的代码所做的是覆盖数组。如何设法将它们彼此相邻地附加在一个文件中?

非常感谢您的帮助!

更新:我设法将所有数组写到一个文件中,但是,现在它们可以简单地彼此打印-如何将它们写到彼此相邻的列中?

import os
import numpy as np
participants = ['001']
for vp in participants:
   with open('file.txt') as f:
      content = f.readlines()
   content = [x.strip() for x in content]
   content = map(int, content)
f = open(outfile.txt, 'w')       
for line in content:
      with open('outfile.txt', 'a') as f:
            arr = np.zeros((587, 1), dtype = int)
            np.put(arr, [line], [1])
            np.savetxt(f, arr, fmt='%i')
f.close()

1 个答案:

答案 0 :(得分:0)

您可以尝试下面的代码,将给定的(n,1)形状的数组作为列添加到包含(n,m)形状的整数矩阵的文本文件中:

def appendAsColumn(arr):
    fileContent = np.loadtxt('outfile.txt', dtype = int, ndmin = 2)
    fileContent = np.hstack((fileContent, arr.astype(int)))
    np.savetxt('outfile.txt', fileContent, fmt='%i')

请注意,这不适用于文件的第一个条目,您需要调用

np.savetxt('outfile.txt', arr, fmt='%i')

第一列。