我想导出一个在每一行和每一列的开头添加注释的数组。

例如,下面的数组:

[[10,5,2],
 [7,2,6],
 [8,3,1]]


我希望输出文件看起来像这样(或相似的):

    1C  2C  3C
1L  10;  5;  2
2L   7;  2;  6
3L   8;  3;  1


问题是numpy数组不接受不同类型(数组中混合有整数和字符串),因此我不能简单地使用np.savetxt导出。

最佳答案

我不知道直接在numpy中执行此操作的方法,但是您始终可以遍历数组并将注释和行写到文件中。

a = np.array([[10,5,2],[7,2,6],[8,3,1]])

print("   " + " ".join([str(x+1)+"C" for x in range(a.shape[1])]))
for i, row in enumerate(a):
    print("%dL %s" % (i+1, "; ".join(map(str, row))))
#   1C 2C 3C
#1L 10; 5; 2
#2L 7; 2; 6
#3L 8; 3; 1


写入文件:

with(open('path/to/file', 'w') as f):
    header = "   " + " ".join([str(x+1)+"C" for x in range(a.shape[1])])
    f.write(header + "\n")
    for i, row in enumerate(a):
        line = "%dL %s" % (i+1, "; ".join(map(str, row)))
        f.write(line + "\n")

关于python - 使用numpy.savetxt导出数组时,在每行之前添加注释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48588932/

10-10 21:34
查看更多