Python-将巨大数组排序为多个

时间:2019-02-12 13:15:47

标签: python arrays

我正在处理一张地图,该地图分为750 x 750编号的图块。这些存储在JSON文件中。我的目的是提取数据并将每个图块分成单独的数组/块。

我已经可以使用它了,但是我是python初学者,代码真的很慢(正在处理500,000多个数字)。想知道是否有更快的方法可以完成相同的工作。

首先,我将json数据拉入数组

with open("data.json") as data_file:
    data = json.load(data_file)
    arr = data["mapLayer"][0]["tiles"]

然后我遍历数组,并根据它们的位置将它们分类为单独的chunk数组:

x=0
y=0 

for tile in arr:
    chunkPos = str(x/16) + "x" + str(y/16)
    chunks[chunkPos].append(tile)
    x += 1

    // reset x pos when it reaches map edge
    if x == 750
        x=0
        y=y+1

1 个答案:

答案 0 :(得分:0)

您可以将图块存储在numpy数组中,而不仅仅是使用4维重塑数组 (我假设您的块大小为256)

import numpy as np

 with open("data.json") as data_file:
    data = json.load(data_file)
    arr = np.array(data["mapLayer"][0]["tiles"])


arr = np.reshape(arr, (750, 1,750, 256))