어색한 라이브러리가 레벨에 관계없이 주어진 이름의 모든 속성을 분리하는 방법을 제공합니까? 나는 다음과 같이 생각하고 있었다.
import awkward as ak
obj = {
'resource_id': 'abc',
'events': [
{'resource_id': '123', 'value': 12, 'picks':
[{'resource_id': 'asd', 'value': 1},
{'resource_id': 'dll', 'value': 12}
]
},
{'resource_id': '456', 'value': 12, 'picks':
[{'resource_id': 'cvf', 'value': 23},
{'resource_id': 'ggf', 'value': 34},
]
},
]
}
ar = ak.from_iter(obj)
rid = ar[..., 'resource_id']
의 값 rid
은 단순히 'abc'문자열이지만 다음과 같은 것을 기대했습니다.
[
['abc'],
['events':[
[['123'], 'picks':[['asd'], ['dll']]],
[['456'], 'picks':[['cvf'], ['ggf']]],
]
]
그러나 나는 여기에서 완전히 벗어날 수 있도록 어색한 배열 주위로 내 머리를 여전히 잡으려고 노력하고 있습니다.
그렇지 않으며 그러한 작업의 출력이 어떻게 형성되어야하는지 잘 모르겠습니다. 예를 들어, 바깥 쪽을 선택 "resource_id"
하면
>>> ar["events", "resource_id"]
<Array ['123', '456'] type='2 * string'>
하지만 내부를 선택 "resource_id"
하면
>>> ar["events", "picks", "resource_id"]
<Array [['asd', 'dll'], ['cvf', 'ggf']] type='2 * var * string'>
참고는 ...
하지 열 (레코드 필드 이름), 의미를 가지고 있지만, 행 (중첩 된 목록)을 통해 조각.
>>> ar["events", "picks", "value"]
<Array [[1, 12], [23, 34]] type='2 * var * int64'>
>>> ar["events", "picks", "value", ..., 0]
<Array [1, 23] type='2 * int64'>
또한 문자열 및 문자열 목록 ( nested projection )으로 프로젝션 할 수 있다는 것을 아는 것이 도움이 될 수 있습니다 .
>>> print(ar["events", "picks", ["resource_id", "value"]])
[[{resource_id: 'asd', value: 1}, ... {resource_id: 'ggf', value: 34}]]
슬라이싱 문제에 도움이되는 경우 ( "resource_id"
모든 수준에서 수동으로 선택 하여 데이터에 적합한 방식으로 조합 할 수 있지만 일반화 할 수 없음).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다