物理尺寸和阵列尺寸

时间:2018-12-10 22:20:49

标签: python arrays

如果我的降雨图具有三个维度(纬度,经度和降雨值),那么如果将其放在一个数组中,是否需要2D或3D数组?数组看起来如何?

如果我有一系列具有四个维度(纬度,经度,降雨值和时间)的每日降雨图,如果将其放在一个数组中,是否需要3D或4D数组?

我在想我分别需要2D和3D数组,因为纬度和经度只能由1D数组表示(但经过重新整形,使其具有多于1行和多列)。请赐教。

3 个答案:

答案 0 :(得分:1)


我认为@Genhis和@Bitzel的主张都正确,这取决于您想做什么...

如果您想提高效率,我建议您同时将其放在2D数据结构中,甚至建议您特别选择pandas dataframe,将数据放入某种类似于矩阵的数据结构中但是如果您需要在3D或4D中“思考”,则可以选择多个索引。

这对于第二种您所说的“(经度,长期,降雨值和时间)”数据特别有用,因为它是“时间序列”的一部分。熊猫提供了许多方法来帮助您在一段时间内进行平均(如果需要,您还可以按经度,纬度或位​​置对数据进行分组)。

相反,如果您的目标是学习关于如何在Python中计算这些数字,则可以将第一种情况使用2D数组,将第二种情况使用2D或3D作为先前的答案推荐的。您可以使用诸如numpy数组之类的数据结构代替纯python列表,但这值得商...... 重要一点:按照@Genhis的建议选择时间序列的3D数组会要求您将时间转换为索引(通过查找表或哈希函数),但这将需要更多的工作...

正如我所说,如果您想了解有关这些问题的更多信息,也可以了解整洁的wide and long formats ...

答案 1 :(得分:0)

对于降雨图,您要描述的值为(纬度,经度,降雨值),您需要使用2D数组(矩阵),因为您需要的只是3列和多行。它看起来像:

rainfall

对于值(纬度,经度,降雨值,时间),情况相同。您需要使用具有4列和若干行的2D数组:

Rainfall matrix

答案 2 :(得分:0)

我认为降雨量不应该是一个维度。因此,您可以分别使用2D array[lat][lon] = rainfall_value或3D array[time][lat][lon] = rainfall_value

如果要进一步减少维度的数量,可以按照建议将纬度和经度合并为一个维度,这将使数组成为1D / 2D。