numpy whl_Numpy读写二进制数据和NCL二进制数据I/O
- Numpy读写二进制数据
Numpy.fromfile()
numpy.fromfile(file, dtype=float, count=-1, sep='')可以高效读取已知数据类型的二进制文件。file表示文件名,dtype表示数据类型(包括大小和字节顺序),count表示读入数据长度,sep表示文本文件的分隔符,默认为空表示读取二进制数据。
图片来自《利用python进行数据分析》第二版
>>>type = np.float32
>>>data = np.fromfile(file,dtype=type)
>>>lon , lat = data.reshape(2,2288,2288)
>>> lat
array([300., 300., 300., ..., 300., 300., 300.], dtype=float32)
>>> lat.dtype
dtype('float32')
前面提到数据类型除了包括大小,还包括字节顺序。字节顺序是通过对数据类型预先设定""来决定的。""意味着大端法BigEndian(最重要的字节存储在最小的地址,即高位组放在最前面)。这里读入一个BigEndian数据,并强制转换其类型。
>>> cld = np.fromfile(file,dtype=">f4")
>>> cld
array([nan, nan, nan, ..., nan, nan, nan], dtype=float32)
>>> cld.dtype
dtype('>f4') #BigEndian
>>> t2 = np.dtype(")
>>> cld = cld.astype(t2) #强制转换数据类型
>>> cld.dtype
dtype('float32')
NUmpy.tofile()
ndarray.tofile(fid, sep=