我正在使用一张 map ,该 map 被分成 750 x 750 编号的图 block 。它们存储在 JSON 文件中。我的目标是提取数据并将每个图 block 分割成单独的数组/ block 。
我已经让它工作了,但我是一个 python 初学者,代码真的很慢(它正在处理 500,000+ 个数字)。想知道是否有更快的方法可以完成同样的事情。
首先我将 json 数据拉入数组
with open("data.json") as data_file:
data = json.load(data_file)
arr = data["mapLayer"][0]["tiles"]
然后我遍历数组并根据它们的位置将它们分类为单独的 block
数组:
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
最佳答案
您可以将图 block 存储在 numpy 数组中,而不仅仅是使用 4 维 reshape 数组 (我假设 256 是你的 block 大小)
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))
关于Python-将大数组排序为多个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650948/