一、二進制
1.numpy.save()
numpy.save(file, arr, allow_pickle=True, fix_imports=True)
功能:將數組以二進制的形式存儲到文件中
參數:
file
:文件名或者文件對象。如果是個文件名,則會自動添加后綴.npy
如果沒有該后綴的話arr
:被存儲的數組allow_pickle
:一個布爾值,如果為True
,則使用Python pickle
。有時候為了安全性和可移植性而不使用pickle
fix_imports
:用於python3
的數組import
到python2
的情形
2.numpy.savez()
numpy.savez(file, *args, **kwds)
功能:將多個數組以二進制的形式存儲到文件中。
參數:
-
file
:文件名或者文件對象。如果是個文件名,則會自動添加后綴.npz
如果沒有該后綴的話 -
args
:被存儲的數組。這些數組的名字將被自動命名為arr_0/arr_1/...;
-
如果沒有名字,則完全無法知曉這些數組的區別
-
-
kwds
:將被存儲的數組,這些關鍵字參數就是鍵的名字
3.numpy.load()
numpy.load(file, mmap_mode=None, allow_pickle=True, fix_imports=True, encoding='ASCII')
功能:將二進制文件中讀取數組
參數:
file
:一個文件名或者文件對象。它存放着數組mmap_mode
:如果不是None
,則memory-map
該文件。此時對數組的修改會同步到文件上。當讀取大文件的一小部分時很有用,因為它不必一次讀取整個文件。可選值為None/'r+'/'r'/'w+'/'c'
allow_pickle
:一個布爾值,如果為True
,則使用Python pickle
。有時候為了安全性和可移植性而不使用pickle
fix_imports
:用於python3
的數組import
到python2
的情形encoding
:只用於python2
,讀取python2
字符串。
該函數返回一個數組,元組,或者字典(當二進制文件時savez
生成時)
二、文本文件
1.numpy.genfromtxt()
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 names -
defaultfmt
: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 transposed -
usemask:
If True, return a masked array -
loose:
If True, do not raise errors for invalid values -
invalid_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 skipped -
max_rows:
一個整數,指定讀取的最大行數。
2.numpy.loadtxt()
numpy.loadtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None,converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0)
功能:作用與genfromtxt
相同,但是它只能用於規則比較簡單的文件,並且它的解析速度更快。
參數:
ndim
:一個整數。指定結果數組必須擁有不少於ndim
維度。- 其他參數參考
genfromtxt
3.numpy.fromstring()
numpy.fromstring(string, dtype=float, count=-1, sep='')
功能:從raw binary
或者字符串中創建一維數組。
參數:
string
:一個字符串,給出數據源dtype
:指定數據類型count
:一個整數。從數據源(一個字符串)中讀取指定數量的數值類型的數值。如果為負數,則為數據長度加上這個負值sep
:如果未提供或者為空字符串,則string
被認為是二進制數據。如果提供了一個非空字符串,則給出了分隔符。
4.numpy.savetxt()
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
(無符號十六進制)
5.ndarray.tofile()
ndarray.tofile(fid, sep="", format="%s")
功能:保存到文件中
參數:
fid
:一個file
對象或者文件名sep
:一個字符串,指定分隔符。如果為空或者空字符串,則按照二進制的方式寫入,等價於file.write(a.tobytes())
format
:一個字符串,指定了數值的格式化方式