在 Python 中将 NumPy 数组写入 CSV

Manav Narula 2023年1月30日
  1. 使用 pandas 数据框将 NumPy 数组保存在 CSV 文件中
  2. 使用 numpy.savetxt() 函数将 NumPy 数组保存到 CSV 文件中
  3. 使用 tofile() 函数将 NumPy 数组保存到 CSV 文件中
  4. 使用文件处理方法将 NumPy 数组保存在 CSV 文件中
在 Python 中将 NumPy 数组写入 CSV

在本教程中,我们将讨论如何将 numpy 数组存储在 CSV 文件中。

使用 pandas 数据框将 NumPy 数组保存在 CSV 文件中

在这种方法中,我们将首先将数组保存在 pandas DataFrame 中,然后将其转换为 CSV 文件。

以下代码显示了我们如何实现这一目标。

import pandas as pd
import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
pd.DataFrame(a).to_csv("sample.csv")

pd.DataFrame 函数将数组存储在 DataFrame 中,我们只需使用 to_csv() 函数将其导出到 CSV 文件即可。

使用 numpy.savetxt() 函数将 NumPy 数组保存到 CSV 文件中

numpy 模块中的 savetxt() 函数可以将数组保存到文本文件。我们可以指定文件格式,定界符和许多其他参数,以获得所需格式的最终​​结果。

在下面的代码中,我们使用此函数将数组保存在 CSV 文件中。

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

np.savetxt("sample.csv", a, delimiter=",")

使用 tofile() 函数将 NumPy 数组保存到 CSV 文件中

tofile() 函数允许我们将数组写入文本或二进制文件。但是,这种方法有许多缺点。它更像是一种便捷功能,用于快速存储数组数据。信息的准确性会丢失,因为它会将所有内容存储在一行中,因此对于打算用于存档数据的文件来说,此方法不是一个好的选择。这些问题中的一些可以通过将数据作为文本文件输出而以速度和文件大小为代价来克服。

以下代码演示了此函数的用法。

import numpy as np

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

a.tofile("sample.csv", sep=",")

使用文件处理方法将 NumPy 数组保存在 CSV 文件中

我们可以使用传统的文件处理方法,但是不建议使用它们,因为此类方法需要根据数组的形状进行许多修改,并且会占用大量内存。

以下代码显示了此方法的示例。

a = np.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
csv_rows = ["{},{},{}".format(i, j, k) for i, j, k in a]
csv_text = "\n".join(csv_rows)

with open("sample.csv", "w") as f:
    f.write(csv_text)

我们将数组解压缩为一个行列表,然后通过使用 join() 函数加入该列表来返回单个字符串。然后,我们将此字符串写入 CSV 文件。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - NumPy Array