在Python中创建矩阵时遇到的问题:尺寸错误

svgewumm  于 2023-06-20  发布在  Python
关注(0)|答案(1)|浏览(189)

我在创建矩阵时遇到了问题。我期望输出矩阵d20的维数为nt*12 x ny x nx,但我得到的矩阵的维数为nt x ny x nx。
代码(Python中)如下:

d20=ma.empty([nt*12,ny,nx]); 
 for k in range(nt):
  ee=time[k]
  files3='thetao_ora20c_1m_' +str(ee) +'_grid_1x1.nc'
  fils3 = nc.Dataset(path+ files3,'r')
  t3=np.array(fils3.variables['thetao'][:,:,:,:])  
  for i in range(nx):
   for j in range(ny):
    for monthit in range(12):
     t3c=t3[monthit,:,j,i] 
     dd = [i for (i, val) in enumerate(t3c[:]) if val >= 19.5 and val <= 20.5]
     if len(dd)==0:
      d20[12*k+monthit,j,i]=0;
     else:
      d20[12*k+monthit,j,i]=dep[dd[0]]

CreateFilenc(d20, 'D20', 'meters', lat, lon, path +'D20_global_1900_2009_ora20c_op.nc')

在这里,每一年,我打开一个不同的文件。时间是一个长度为nt的向量,其中每个元素都是从1900年到2009年的一年。为什么我会得到错误的尺寸?我做错了什么?
先谢谢你了。

izkcnapc

izkcnapc1#

“妈”是什么?如果你使用numpy,它可以工作:

>>> import numpy as np   
>>> nt = 12
>>> nx = 10
>>> ny = 20
>>> d20 = np.empty([nt*12,ny,nx])
>>> print(d20.shape)
(144, 20, 10)

相关问题