我有一个尺寸为(37,121,152)的数组。它基本上是一个地理区域的数据(121和152代表经度和纬度),超过37天。我想切片这个数组,并将其存储到一个有37个键的字典中。
我不知道该怎么做!
如果您提供一些示例代码将会很好,当有代码时,我们更容易帮助您。在没有代码的情况下,我们在黑暗中工作。
这将创建一个键从0
到36
的字典。
data_as_dict = {i:daily_data for i, daily_data in enumerate(data_as_array)}
更短的方法-
import numpy as np
arr = np.random.random((37, 121, 152))
dict(enumerate(arr))
也可以使用列表推导式
{i:arr[i] for i in range(arr.shape[0])}
{0: array([[0.03587153, 0.00733576, 0.64817595, ..., 0.39584249, 0.78103435,
0.51605369],
[0.04765851, 0.51853953, 0.79437461, ..., 0.70687342, 0.99151754,
0.2865933 ],
[0.74195368, 0.9702369 , 0.01011108, ..., 0.06677645, 0.14794432,
0.29168354],
...,
[0.49454141, 0.49880604, 0.42167608, ..., 0.8111022 , 0.14036701,
0.46243714],
[0.82830127, 0.20608145, 0.24071568, ..., 0.97635812, 0.25148288,
0.00285221],
[0.16013346, 0.93088693, 0.76699837, ..., 0.14429432, 0.90871887,
0.95358223]]),
1: array([[0.31927665, 0.91979103, 0.9566047 , ..., 0.54962716, 0.32168082,
0.16869125],
[0.41893565, 0.47285146, 0.30876266, ..., 0.90161547, 0.33960162,
0.54737103],
[0.5908037 , 0.6471568 , 0.54996533, ..., 0.70905124, 0.13338396,
0.57609446],
...,
[0.98143214, 0.2392772 , 0.76211642, ..., 0.99660162, 0.73251072,
0.9177692 ],
[0.6912586 , 0.92501548, 0.65568306, ..., 0.65735284, 0.54854086,
0.90320001],
[0.86533528, 0.94201925, 0.91083406, ..., 0.60207038, 0.42076898,
0.29382403]]),
key中每个值的形状为-
{i:arr[i].shape for i in range(arr.shape[0])}
{0: (121, 152),
1: (121, 152),
2: (121, 152),
3: (121, 152),
4: (121, 152),
5: (121, 152),
6: (121, 152),
7: (121, 152),
8: (121, 152),
9: (121, 152),
10: (121, 152),
11: (121, 152),
12: (121, 152),
13: (121, 152),
14: (121, 152),
15: (121, 152),
16: (121, 152),
17: (121, 152),
18: (121, 152),
19: (121, 152),
20: (121, 152),
21: (121, 152),
22: (121, 152),
我将假设您使用的是list()
。作为一个例子,让我们假设列表看起来像
your_array = [[1,2,3],[4,5,6],[7,8,9]]
您可以遍历数组中的每个list
,并将第一个值作为key
,其他值作为value
。
your_dict = { i[0]:i[1:] for i in your_array }
我认为你需要的是一个字典理解
如前所述,示例代码很有帮助!你的数据是什么样子的?这会给我们一个很好的起点。