user269867
user269867

Reputation: 3952

convert dict to numPy array

I have a json file

{"id": 103, "data": [{"point": [10, 20], "sp": 2}, {"point": [20, 20], "sp": 3}, {"point": [10, 20], "sp": 0}, {"point": [30, 20], "sp": 0}]}

I am trying to convert this json in to numPy array which has only col "sp"

I tried

numpy_2d_arrays = np.array( list(item.sp) for item in filejson["data"])
print(numpy_2d_arrays)

which return <generator object speedVariance.. at 0x11421dba0>

how can I read all "sp" data point in single array using numpy from json

Upvotes: 1

Views: 74

Answers (2)

Rahul Dhar
Rahul Dhar

Reputation: 157

jsonData = {"id": 103, "data": [{"point": [10, 20], "sp": 2}, {"point": [20, 20], "sp": 3}, {"point": [10, 20], "sp": 0}, {"point": [30, 20], "sp": 0}]}

numpy_2d_arrays = np.array([item['sp'] for item in jsonData['data']])

print(numpy_2d_arrays)

Upvotes: 1

bigbounty
bigbounty

Reputation: 17368

In [5]: a
Out[5]:
{'id': 103,
 'data': [{'point': [10, 20], 'sp': 2},
  {'point': [20, 20], 'sp': 3},
  {'point': [10, 20], 'sp': 0},
  {'point': [30, 20], 'sp': 0}]}

In [10]: A = np.array([i["sp"] for i in a["data"]])

In [11]: A[A!=0]
Out[11]: array([2, 3])

OR

In [12]: np.array([i["sp"] for i in a["data"] if i["sp"]])
Out[12]: array([2, 3])

Upvotes: 2

Related Questions