📅  最后修改于: 2023-12-03 15:38:05.349000             🧑  作者: Mango
NumPy 是用于科学计算的 Python 库,它将 Python 与 C 语言库相结合,提供了高效的数组操作。在 NumPy 中,可以使用 numpy.loadtxt() 和 numpy.genfromtxt() 函数从文本文件中读取数据。
numpy.loadtxt() 函数可用于从文本文件中读取数据,并返回一个 NumPy 数组。
numpy.loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, \
converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, \
encoding='bytes', max_rows=None)
假设我们有以下数据文件 test.txt:
1,2,3,4
5,6,7,8
9,10,11,12
我们可以使用 numpy.loadtxt() 来读取这个文件:
import numpy as np
data = np.loadtxt("test.txt", delimiter=",")
print(data)
输出:
[[ 1. 2. 3. 4.]
[ 5. 6. 7. 8.]
[ 9. 10. 11. 12.]]
numpy.genfromtxt() 函数提供了更多参数,可以更好地处理缺失值等情况。
numpy.genfromtxt(fname, dtype=<class 'numpy.float64'>, comments='#', delimiter=None, \
skip_header=0, skip_footer=0, converters=None, missing_values=None, \
filling_values=None, usecols=None, names=None, excludelist=None, \
deletechars=" !#$%&'()*+, -./:;<=>?@[\]^{|}~", replace_space='_', \
autostrip=False, case_sensitive=True, defaultfmt="f%i", unpack=None, \
usemask=False, loose=True, invalid_raise=True, max_rows=None, \
encoding='bytes')
假设我们有以下数据文件 test.csv:
1,2,3,4
5,,7,8
9,10,,12
我们可以使用 numpy.genfromtxt() 来读取这个文件:
import numpy as np
data = np.genfromtxt("test.csv", delimiter=",", names=True, dtype=None, \
encoding=None, filling_values=np.nan)
print(data)
输出:
[(1, 2., 3., 4.) (5, nan, 7., 8.) (9, 10., nan, 12.)]
在这个示例中,我们将 filling_values 设置为 np.nan,以便 NumPy 可以识别缺失值。通过将 names 设置为 True 和 dtype 设置为 None,我们还可以使用字段名称来引用数组的列。