Python - Конвертировать массив Numpy в JSON - PullRequest
0 голосов
/ 19 января 2019

У меня есть массив Python numpy с именем myarray, который выглядит следующим образом ..

[[148 362]
 [153 403]
 [163 443]
 [172 483]
 [186 521]
 [210 553]
 [239 581]
 [273 604]
 [314 611]
 [353 602]]

Я хочу создать JSON, который выглядит следующим образом ..

myjson = [
    {'section': '3',
     'x': '163',
     'y': '362',
    },
    {'section': '7',
     'x': '239',
     'y': '581',
    },
    {'section': '10',
     'x': '353',
     'y': '602',
    },
]

Представляет строку 3rd, 7th и 10th в исходном массиве numpy.У кого-нибудь есть пример чего-то подобного?

Ответы [ 3 ]

0 голосов
/ 19 января 2019

Чтобы добавить ответ Андрея, я полагаю, что вы также можете распаковать массивы, чтобы сделать его немного чище:

[{'section': i+1, 'x': x, 'y': y} for i, [x, y] in enumerate(myarray) if i in [2, 6, 9]]
0 голосов
/ 19 января 2019

pandas представляет удобное решение:

import pandas as pd
import numpy as np

df=pd.DataFrame(myarray, columns=["x", "y"])
df["Section"]=df.index

df.to_json(orient="records")

это дает:

 '[{"x":148,"y":362,"Section":0},{"x":153,"y":403,"Section":1},
{"x":163,"y":443,"Section":2},{"x":172,"y":483,"Section":3},
{"x":186,"y":521,"Section":4},{"x":210,"y":553,"Section":5},
{"x":239,"y":581,"Section":6},{"x":273,"y":604,"Section":7},
{"x":314,"y":611,"Section":8},{"x":353,"y":602,"Section":9}]'

Решение немного отличается, но вы можете легко найти свой путь в чистом Python, чтобы преобразовать его в свою структуру.

0 голосов
/ 19 января 2019

Если ваш входной массив равен arr Я полагаю, вы хотите что-то вроде:

[{'section': i+1, 'x': x[0], 'y': x[1]} for i, x in enumerate(arr) if i in [2, 6, 9]]

[2, 6, 9] - ваши [3, 7, 10] позиции, только начиная с 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...