当前位置: 首页 > 面试题库 >

如何将numpy数组写入csv文件?

越健
2023-03-14
问题内容

我想打开一个新的文本文件,然后将numpy数组保存到该文件。我写了这段代码:

foo = np.array([1,2,3])
abc = open('file'+'_2', 'w')
np.savetxt(abc, foo, delimiter=",")

我收到此错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-33-fea41927952b> in <module>()
      2 model = cool
      3 abc = open('file'+'_2', 'w')
----> 4 np.savetxt(abc, foo, delimiter=",")

/usr/local/lib/python3.4/site-packages/numpy/lib/npyio.py in savetxt(fname, X, fmt,     delimiter, newline, header, footer, comments)
   1071         else:
   1072             for row in X:
-> 1073                 fh.write(asbytes(format % tuple(row) + newline))
   1074         if len(footer) > 0:
   1075             footer = footer.replace('\n', '\n' + comments)

TypeError: must be str, not bytes

有人知道怎么了吗?

另外,我在终端中找到了一个名为file_2的空文件,但是里面没有任何内容。

编辑:我正在使用Python3.4


问题答案:

看来您正在使用Python3。因此,请以二进制模式(wb)而非文本模式(w)打开文件:

import numpy as np
foo = np.array([1,2,3])
with open('file'+'_2', 'wb') as abc:
    np.savetxt(abc, foo, delimiter=",")

另外,关闭文件句柄,abc以确保将所有内容都写入磁盘。您可以使用with-statement来实现(如上所示)。

正如DSM所指出的,通常在使用时,np.savetxt您将不希望在文件中写入其他任何内容,因为这样做可能会干扰np.loadtxt以后的使用。因此,与其使用文件句柄,不如简单地将文件名作为第一个参数传递给np.savetxt

import numpy as np
foo = np.array([1,2,3])
np.savetxt('file_2', foo, delimiter=",")


 类似资料:
  • 我使用supercsv CsvBeanWriter将值写入csv文件。 示例类: 我得到的结果是: 注意

  • 问题内容: 我一直在尝试将数组写入文件。我知道如何将整数或字符串写入文件,但是要带一个数组会使我感到困惑。我现在正在使用这个: 问题答案: 就像其他人说的那样,您可以循环遍历数组并逐个打印出元素。为了使输出显示为数字而不是您看到的“字母和符号”,您需要将每个元素转换为字符串。因此,您的代码将如下所示: 如果您只想打印类似的数组,则可以使用此衬纸替换循环:

  • 问题内容: 我有一个示例数组如下 我想将此数组写入文件,例如我得到的文件如下 问题答案: 如果它是一个巨大的数组,并且在写入之前需要太多内存才能将其序列化为字符串,则可以使用流:

  • 我正在尝试将以下数据写入csv文件。这些数据是employdetails name1-surname1-place1 名称4-surname4-place4 我希望输出在CSV文件上,一个在另一个下面,在单独的行上。 我写了下面的代码 -KD

  • 问题内容: 我不知道是否有一个CSV文件的内容导入到一个记录阵列直接的方式,很多的方式是的和家庭的进口数据与R的数据帧? 还是使用然后应用类似内容的最佳方法? 问题答案: 你可以通过将 设置为逗号来使用Numpy的方法。 有关该功能的更多信息,请参见其相应的文档。

  • 问题内容: 我认为我应该完成一项我似乎无法解决的非常简单的任务。 如何将Python字典写入csv文件?我想要的只是将字典键写入文件的第一行,并将键值写入第二行。 我最接近的是以下内容(我是从别人的帖子中获得的): 问题是,上面的代码似乎只将密钥写入第一行,仅此而已。我没有将值写入第二行。 有任何想法吗? 问题答案: 您使用的是期望字典列表而不是字典的列表。您只想DictWriter.writer