我有一些列表,我都想导出到同一个.txt文件。
到目前为止,我只使用
导出了3个列表my_array=numpy.array(listofrandomizedconditions)
my_array2=numpy.array(inputsuser)
my_array3=numpy.array(reactiontimesuser)
combined=numpy.column_stack([my_array,my_array2,my_array3])
numpy.savetxt(participantnumber + ".txt", combined, delimiter=" ", fmt ="%-12s")
这给了我一个类似
的输出CongruentPositief no input or wrong button no reactiontime
IncongruentNegPos no input or wrong button no reactiontime
由于这很难阅读,我想在所有不同的列表之间添加一个标签。
此外,我想添加一些与前3个不长的192个元素的列表,但后来我得到一个错误,即每个数组必须具有相同的大小。有没有解决的办法?
答案 0 :(得分:0)
特别是如果你从列表(字符串)开始,我没有看到使用numpy
数组的重点。
首先,请尝试打印值:
In [659]: conditions=['one','two','three']
In [660]: values=[1,2,3]
In [661]: other=['xxxx','uuuuuuu','z']
基本格式
In [662]: for xyz in zip(conditions, values,other):
print("%s,%s,%s"%xyz)
.....:
one,1,xxxx
two,2,uuuuuuu
three,3,z
使用制表符和固定长度进行精炼:
In [663]: for xyz in zip(conditions, values,other):
print("%-12s\t%-12s\t%-12s"%xyz)
.....:
one 1 xxxx
two 2 uuuuuuu
three 3 z
下一步是打开一个文件并写入,而不是print
。
它的列堆栈需要相等长度的字符串。 savetxt
只是根据您的参数(以及列数)创建一个fmt
字符串,并像我一样写下每个row
。
In [667]: with open('temp.txt','w') as f:
.....: for xyz in zip(conditions,values,other):
.....: f.write('%-12s,%-12s,%-12s\n'%xyz)
.....:
In [668]: cat temp.txt
one ,1 ,xxxx
two ,2 ,uuuuuuu
three ,3 ,z