2. 文本文件
numpy.genfromtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None,
skip_header=0, skip_footer=0, converters=None, missing_values=None,
filling_values=None, usecols=None, names=None, excludelist=None,
deletechars=None, replace_space='_', autostrip=False, case_sensitive=True,
defaultfmt='f%i', unpack=None, usemask=False, loose=True,
invalid_raise=True, max_rows=None)
:从文本文件中加载数组,通用性很强,可以处理缺失数据的情况。loadtxt()
函数只能处理数据无缺失的情况。fname
:指定的数据源。可以为:- 文件名字符串。如果后缀为
gz
或者bz2
,则首先自动解压缩 - 文件对象/字符串列表/其他可迭代对象:这些可迭代对象必须返回字符串(该字符串被视为一行)
- 文件名字符串。如果后缀为
dtype
:数组的元素类型,可以提供一个序列,指定每列的数据类型comments
:一个字符串,其中每个字符都指定了注释行的第一个字符。注释行整体被放弃delimiter
:指定了分隔符。可以为:- 字符串:指定分隔符。默认情况下,所有连续的空白符被认为是分隔符
- 一个整数:指定了每个字段的宽度
- 一个整数序列:依次给出了各个字段的宽度
skiprows
:被废弃,推荐使用skip_header
skip_header
:一个整数,指定跳过文件头部多少行skip_footer
:一个整数,指定跳过文件尾部多少行converters
:用于列数据的格式转换。你可以指定一个字典,字典的键就是列号:converters={0: lambda s: float(s or 0),
1: lambda s: int(s or 199),...
}
missing
:被废弃,推荐使用missing_values
missing_values
:指定缺失数据。你可以自定一个字典,字典的键就是缺失位置的字符串,值就是缺失值。比如你可以指定NNNN
为缺失数据,此时遇到NNNN
时,numpy
解析为np.nan
filling_values
:指定缺失值的填充值。即解析到np.nan
时,用什么值代替它usecols
:一个序列,指定了要读取那些列(列从0 计数)names
:- 如果为
True
,则在skip_header
行之后第一行被视作标题行,将从该行读取每个字段的name
。 - 如果为序列或者一个以冒号分隔的字符串,则使用它作为各个字段的
name
- 如果为
None
,则每个dtype
字段的名字被使用
- 如果为
excludelist
:一个序列,给出了需要排除的字段的name
。deletechars
:A string combining invalid characters that must be deleted from the namesdefaultfmt
:A format used to define default field names, such as “f%i” or “f_%02i”.autostrip
:一个布尔值。如果为True
,则自动移除数据中的空白符replace_space
:一个字符。如果变量名中有空白符,如user name
,则使用该字符来替代空白符。默认为_
,即变量名转换为user_name
case_sensitive
:一个布尔值或者字符串。如果为True
,则字段名是大小写敏感的。如果为False
或者'upper'
,则字段名转换为大写字符。如果为'lower'
则转换为小写字符。unpack
:If True, the returned array is transposedusemask
:If True, return a masked arrayloose
:If True, do not raise errors for invalid valuesinvalid_raise
:If True, an exception is raised if an inconsistency is detected in the number of columns. If False, a warning is emitted and the offending lines are skippedmax_rows
:一个整数,指定读取的最大行数。
numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None,
converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
:它作用与genfromtxt
相同,但是它只能用于规则比较简单的文件,并且它的解析速度更快。ndim
:一个整数。指定结果数组必须拥有不少于ndim
维度。- 其他参数参考
genfromtxt
numpy.fromstring(string, dtype=float, count=-1, sep='')
:从raw binary
或者字符串中创建一维数组。string
:一个字符串,给出数据源dtype
:指定数据类型count
:一个整数。从数据源(一个字符串)中读取指定数量的数值类型的数值。如果为负数,则为数据长度加上这个负值sep
:如果未提供或者为空字符串,则string
被认为是二进制数据。如果提供了一个非空字符串,则给出了分隔符。
numpy.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='',
footer='', comments='# ')
:存储到文本文件fname
:给出了文件名或者file
对象。如果为.gz
后缀,则自动压缩X
:被存储的数组fmt
:一个字符串或者一个字符串序列,指定存储格式。一个字符串可以指定所有的格式化方式;一个字符串序列可以对每列指定一个格式化方式。如果是虚数,你可以通过%.4e%+.4j
的方式指定实部和虚部。delimiter
:一个字符串,用于分隔符,分隔每个列newline
:一个字符串,指定换行符header
:一个字符串。它会写到文件的首行footer
:一个字符串。它会写到文件的末尾comments
:一个字符串。它会写到文件的中间,并且用注释符作为行首,如#
注:
fmt
分隔字符串的格式为%[flag]width[.precision]specifier
。其中:flags
:可以为'-'
(左对齐)、'+'
(右对齐)、'0'
(左侧填充0)width
:最小的位宽。precision
:- 对于
specifier=d/i/o/x
,指定最少的数字个数 - 对于
specifier=e/E/f
,指定小数点后多少位 - 对于
specifier=g/G
,指定最大的significant digits
- 对于
specifier=s
,指定最大的字符数量
- 对于
specifier
:指定格式化类型。c
(字符)、d/i
(带符号整数)、e/E
(科学计数法)、f
(浮点数)、g/G
(使用shorter e/E/f
)、o
(带符号八进制)、s
(字符串)、u
(无符号整数)、x/X
(无符号十六进制)
ndarray.tofile(fid, sep="", format="%s")
:保存到文件中。fid
:一个file
对象或者文件名sep
:一个字符串,指定分隔符。如果为空或者空字符串,则按照二进制的方式写入,等价于file.write(a.tobytes())
format
:一个字符串,指定了数值的格式化方式