我正在创建一个零数组(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()
答案 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')
第一列。