Python 为什么netCDF4根据读取数据的方式给出不同的结果?
我正在用python编写代码,并尝试使用netCDF4读入一些浮点netCDF数据。Mt原始代码看起来像Python 为什么netCDF4根据读取数据的方式给出不同的结果?,python,numpy,netcdf,Python,Numpy,Netcdf,我正在用python编写代码,并尝试使用netCDF4读入一些浮点netCDF数据。Mt原始代码看起来像 from netCDF4 import Dataset import numpy as np infile='blahblahblah' ds = Dataset(infile) start_pt = 5 # or whatever x = ds.variables['thedata'][start_pt:start_pt+2,:,:,:] 现在,由于各种各样的事情,我现在不得不一
from netCDF4 import Dataset
import numpy as np
infile='blahblahblah'
ds = Dataset(infile)
start_pt = 5 # or whatever
x = ds.variables['thedata'][start_pt:start_pt+2,:,:,:]
现在,由于各种各样的事情,我现在不得不一次一片地阅读“thedata”:
x = np.zeros([2,I,J,K]) # I,J,K match size of input array
for n in range(2):
x[n,:,:,:] = ds.variables['thedata'][start_pt+n,:,:,:]
问题是这两种阅读方法给出的结果略有不同。没什么大不了的,比如10分之一到5分之一,但还是
那么,有谁能告诉我为什么会发生这种情况,以及我如何保证这两种方法得到相同的结果?我的想法是,第一种方法可能会自动将x建立为与输入数据相同的类型,而第二种方法将x建立为numpy数组的默认类型。但是,输入数据是64位的,我认为numpy数组的默认值也是64位的。所以这并不能解释它。有什么想法吗?谢谢。第一个示例将数据拉入NetCDF4变量对象,而第二个示例将数据拉入numpy数组。变量对象是否可能只是以不同的精度显示数据?是否检查了每个变量的类型(使用类型(…))?