繁体   English   中英

将 dtype=object numpy arrays 保存在包含浮点数和字符串的 csv 文件中

[英]Save dtype=object numpy arrays in a csv file containing floats and strings

我必须在 CSV 文件的每一行中保存 3 个字符串和一个浮点数。 这是我所做的:

    filename = "results.txt"
    if os.path.exists(filename):
        append_write = "a"
    else:
        append_write = "w"
    
    #I am saving 3 strings and one float, they come from a numpy array 
    results = np.array(["a", "b", "c", 0.32],dtype=object)
    
    f = open(filename, append_write)
    np.savetxt(f, results, delimiter=",")
    f.close()

但是,这是我在运行此类代码时遇到的错误

  raise TypeError("Mismatch between array dtype ('%s') and "
  TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')

如何将 NumPy 数组中的此类混合变量保存到 CSV 文件中?

您想为np.savetxt指定一个fmt字符串,如下所示:

results = np.array(["a", "b", "c", 0.32], dtype=object).reshape(1, -1)
fmt = '%s,%s,%s,%f'

with open(filename, append_write) as f:
    np.savetxt(f, results, delimiter=",", fmt=fmt)

NB 似乎您想要 append 您的数据逐行,在这种情况下,您需要重塑以将您的数据放入列(一行)。 fmt字符串应与您要指定的列数匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM