我将矩形的地理坐标表示为 numpy ndarray,如下所示:
(每行对应一个矩形,每列包含其左下角和右上角的经纬度)
我想调用一个坐标转换 API,它的输入是这样的字符串:
所以我写了一个愚蠢的迭代来将我的 ndarray 转换为所需的字符串,如下所示:
coords = ''
for i in range(0, my_rectangle.shape[0]):
coords = coords + '{left_lon},{left_lat};{right_lon},{rigth_lat}'.format(left_lon = my_rectangle[i][0], left_lat = my_rectangle[i][1], \
right_lon = my_rectangle[i][2], rigth_lat = my_rectangle[i][3])
if i != my_rectangle.shape[0] - 1:
coords = coords + ';'
输出是这样的:
我想知道是否存在一种更智能、更快的方法,无需迭代(或一些我可以引用的有用文档)即可实现这一目标?
最佳答案
让我们尝试使用函数式风格:
values = [[ 116.17265886, 39.92265886, 116.1761427 , 39.92536232],
[ 116.20749721, 39.90373467, 116.21098105, 39.90643813],
[ 116.21794872, 39.90373467, 116.22143255, 39.90643813]]
def prettyPrint(coords):
return '{0},{1};{2},{3}'.format(coords[0], coords[1], coords[2], coords[3])
asString = formating(list(map(prettyPrint,values)))
print(";".join(asString)) #edited thanks to comments
map 将函数应用于可迭代对象的每个元素。因此,您定义要应用于一个元素的过程,然后使用 map 将每个元素替换为其结果。
希望你发现它更聪明;)
编辑 :
你也可以这样写:
asString = [prettyPrint(value) for value in values]
关于python - 在 python 中将 numpy ndarray 转换为字符串的更智能、更快的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26335142/