我正在处理一张地图,该地图分为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
答案 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))