numpy.savetxt详解

发布时间:2023-05-19

一、保存数据到文本文件

numpy.savetxt函数将数组保存到txt文件中。它采用两个必需的参数:文件名和数组。可选参数delimiter指定数组元素的分隔符,newline指定行之间的分隔符。默认情况下,delimiter" "newline"\n"

import numpy as np
a = np.array([[1, 2], [3, 4]])
np.savetxt("test.txt", a)
b = np.array([[1, 2], [3, 4]])
np.savetxt("test1.txt", b, delimiter=",")
c = np.array([[1, 2], [3, 4]])
np.savetxt("test2.txt", c, delimiter=",", newline=";")

二、指定格式保存数据到文本文件

numpy.savetxt函数还可以使用fmt选项指定保存数据时的格式。它应该是一个格式字符串,其中包含格式控制字符,如%d%f等。该选项可以是一个字符串,也可以是一个格式字符串的序列。

import numpy as np
a = np.array([[1, 2], [3, 4]])
np.savetxt("test.txt", a, fmt="%d")
b = np.array([[1.5, 2.5], [3.5, 4.5]])
np.savetxt("test1.txt", b, fmt="%0.2f")
c = np.array([[1, 2], [3, 4]])
np.savetxt("test2.txt", c, fmt=["%d", "%0.2f"])

三、写入文件头和脚注

numpy.savetxt函数允许将文本字符串写入文件的头和脚注中。分别使用headerfooter选项指定。

import numpy as np
a = np.array([[1, 2], [3, 4]])
np.savetxt("test.txt", a, header="This is an array")
b = np.array([[1, 2], [3, 4]])
np.savetxt("test1.txt", b, header="This is an array", footer="End of file")

四、使用iterable对象保存数据到文本文件

numpy.savetxt函数不仅能接受ndarray对象,还能接受任何迭代器对象,如列表、元组等。在此过程中,numpy.savetxt会自动将迭代器中的每一项分别转换为字符串。

import numpy as np
a = [1, 2, 3, 4, 5]
np.savetxt("test.txt", a, fmt="%d")
b = [(1, 2), (3, 4), (5, 6)]
np.savetxt("test1.txt", b, fmt="%d")

五、保存数据到压缩文件

numpy.savetxt函数还允许将文件保存到压缩文件中。在保存数组之前,必须在".gz"(或"+gzip")或".bz2"(或"+bz2")后缀中指定压缩格式。

import numpy as np
a = np.array([[1, 2], [3, 4]])
np.savetxt("test.txt.gz", a, fmt="%d", delimiter=",")

六、其他选项

numpy.savetxt函数还有其他一些可选参数。

  • comments:文本字符串,它将在文件的头注中使用,默认为" # "
  • encoding:指定文件进制,默认为"utf-8"
  • newline:指定文本文件中使用的行分隔符,默认为"\n"
  • header:文本字符串或序列,写入文件的头注
  • footer:文本字符串或序列,写入文件的尾注
  • fmt:格式字符串或序列,指定数组的格式
  • delimiter:分隔符字符,默认为" " 下面是一个使用其他选项的示例:
import numpy as np
a = np.array([[1, 2], [3, 4]])
np.savetxt("test.txt", a, fmt="%d", delimiter=",", comments="", encoding="utf-8")

七、总结

numpy.savetxt函数是一个非常实用的函数,可以将数组以多种方式保存到txt文件中。无论是使用默认选项还是其他选项,numpy.savetxt都可以帮助我们将数据保存到文件中。我们在实际工作中经常需要保存数据,因此掌握numpy.savetxt函数的使用方法非常有用。