Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么netCDF4根据读取数据的方式给出不同的结果?_Python_Numpy_Netcdf - Fatal编程技术网

Python 为什么netCDF4根据读取数据的方式给出不同的结果?

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,:,:,:] 现在,由于各种各样的事情,我现在不得不一

我正在用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,:,:,:]
现在,由于各种各样的事情,我现在不得不一次一片地阅读“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数组。变量对象是否可能只是以不同的精度显示数据?

是否检查了每个变量的类型(使用类型(…))?