2015-07-28 38 views
-1

我有一个4维的变量,我想设置其中3个等于固定值,所以只有一个正在改变(即我可以得到一个二维图形表示的变量) - 但我可以没有办法用scipy和numpy来做到这一点。我不愿意安装NetCDF4(我只有工作经验 - 上周我学习了python,所以我对此很陌生)。设置一个NetCDF尺寸值

谢谢!

回答

0

NetCDF4可让您指定一个维度作为变量,以便以一种方便的方式组织数据文件布局。您只能将数据添加到文件的末尾。任何其他更改都需要重写该文件,或者至少需要大块文件。此外,很多NetCDF4数据具有自然的“增长”维度,例如空间固定样本点,但随着时间的推移而增长。

numpy数组没有这样的选项,通常不需要它。如果您需要将数据添加到数组,则使用concatenate来创建一个新数组,其中包含旧数据和新数据。或者说,它加入了所有元素,而没有“旧”与“新”的区别。 np.concatenate被编译,因此合理快速。我相信它的作用是创建合适大小的新空数组,并复制输入数据。

有一个np.append,但它确实只是concatenate的前端。对于一次添加到数组中是没问题的,但是新用户通常会将其放入循环中,并将其逐个添加到数组中,以此来滥用它。

一个常见的numpy构造数组的方式是将这些片段追加到列表中,并在末尾处将该列表传递给np.array。 Python list有一个有效的附加方法。这样的清单也可以传递给np.concatenate

另一种常见的方法是初始化一个足够大的空数组,然后沿着适当的维度插入子数组。

增量式创建数组是一个常见的SO numpy问题。