如何将三阶多维数组拆分为 python 中的不同数组?

How to split 3rd order multidimensional array into different arrays in python?

我正在制作一个加密货币分析脚本,交易所 api 将市场价差捆绑在一个 JSON 对象中,它打印出这个-

{'error': [], 'result': {'XXBTZEUR': {'asks': [['892.00000', '0.067', 
1489866640]], 'bids': [['891.86000', '0.032', 1489866639]]}}}

如你所见,这是一个多维数组。让我为您简化它的结构。

c = {'a':[],'b':{'bsubarray':{'asks':[[x1,y1,z1],[x2,y2,z2],...]
                             {'bids':[[x1,y1,z1],[x2,y2,z2],...]}

我正在尝试从中获取 4 个数组 - ask_xask_y 以及 bid_xbid_y

这实际上是我在 python 中的第三个程序,所以任何详细的解释都会真正帮助我学习。

谢谢!

要提取ask_xask_y等,那么你只需要zip上层相关的asks等,例如:

>>> c = {'a':[],'b':{'bsubarray':{'asks':[['x1','y1','z1'],['x2','y2','z2'],['x3','y3','z3']],
...                               'bids':[['x1','y1','z1'],['x2','y2','z2'],['x3','y3','z3']]}}}
>>> ask_x, ask_y, ask_z = zip(*c['b']['bsubarray']['asks'])
>>> bid_x, bid_y, bid_z = zip(*c['b']['bsubarray']['bids'])
>>> ask_x
('x1', 'x2', 'x3')
>>> ask_y
('y1', 'y2', 'y3')

使用您的实际数据:

>>> c = {'error': [], 'result': {'XXBTZEUR': {'asks': [['892.00000', '0.067', 1489866640]], 
...                                           'bids': [['891.86000', '0.032', 1489866639]]}}}
>>> ask_x, ask_y, ask_z = zip(*c['result']['XXBTZEUR']['asks'])
>>> bid_x, bid_y, bid_z = zip(*c['result']['XXBTZEUR']['bids'])
>>> ask_x
('892.00000',)
>>> ask_y
('0.067',)