Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将循环中的数组保存在列中的一个txt文件中_Python_Arrays_Numpy - Fatal编程技术网

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

Python 将循环中的数组保存在列中的一个txt文件中,python,arrays,numpy,Python,Arrays,Numpy,我正在创建一个零数组(587x1),在该数组中,我想用数组特定行中的一个替换一个零,该数组作为另一个文件的索引。到目前为止,这一部分在我的代码中运行良好 之后,我想将所有这些新创建的数组保存在一个txt文件中,作为相邻的列,用制表符分隔。但是,我的代码所做的是覆盖数组。如何将它们相邻地附加到一个文件中 非常感谢你的帮助 更新:我成功地将所有数组写入一个文件,但是,它们现在只是简单地打印在彼此的顶部-如何将它们写入彼此相邻的列中 import os import numpy as np parti

我正在创建一个零数组(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()

您可以尝试以下代码,将给定的
(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')

对于第一列。

您可以尝试以下代码,将给定的
(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')

对于第一列。

file.txt的输入是什么?请尝试
np.savetxt(f,arr,fmt='%i')
,我无法测试它,因为我没有file.txtHi,file.txt只包含引用数组中的行的数字(例如[224368]),其中的零应该被替换为1。不幸的是,你的建议没有帮助,所有内容都被覆盖了,只会导致文件“outfile.txt”中的最后一个数组。我会用很小的步骤来开发这样的代码。比如确保我可以在一个文件中以正确的重叠写入两次。首先获取最内部的循环。file.txt的输入是什么?请尝试
np.savetxt(f,arr,fmt='%i')
,我无法测试它,因为我没有file.txtHi,file.txt只包含引用数组中的行的数字(例如[224,368]),其中0应该被替换为1。不幸的是,你的建议没有帮助,所有内容都被覆盖了,只会导致文件“outfile.txt”中的最后一个数组。我会用很小的步骤来开发这样的代码。比如确保我可以在一个文件中以正确的重叠写入两次。首先获得最内部的工作循环。非常感谢您的建议!我设法写了一个列挨着一列的文件。唯一的问题是,带有第一个索引的第一列现在打印了两次:
f=open('outfile.txt','w')firstline=content[0]arr=np.zeros((587,1),dtype=int)np.put(arr,[firstline],[1])np savetxt('outfile.txt',arr,fmt='%i')line=content[1:]对于内容中的行:arr=np.zeros((587,1),dtype=int)np.put(arr,line,[1])appendAsColumn(arr)
好的,我自己刚刚修复了它。内容索引必须在for循环的开头给出,以避免重复第一列。无论如何,非常感谢!非常感谢你的建议!我设法写了一个列挨着一列的文件。唯一的问题是,带有第一个索引的第一列现在打印了两次:
f=open('outfile.txt','w')firstline=content[0]arr=np.zeros((587,1),dtype=int)np.put(arr,[firstline],[1])np savetxt('outfile.txt',arr,fmt='%i')line=content[1:]对于内容中的行:arr=np.zeros((587,1),dtype=int)np.put(arr,line,[1])appendAsColumn(arr)
好的,我自己刚刚修复了它。内容索引必须在for循环的开头给出,以避免重复第一列。无论如何,非常感谢!