Проблема с выбором в большом массиве ndimension numpy - PullRequest
1 голос
/ 30 мая 2020

У меня есть большой многомерный массив numpy, который я создал путем преобразования списков, и когда я пытаюсь выбрать одну конкретную c запись, я получаю эту ошибку:

tickGroups[0, 0, 0]

IndexError                                Traceback (most recent call last)
<ipython-input-108-e8d1dd9db3ac> in <module>
----> 1 tickGroups[0, 0, 0]

IndexError: too many indices for array

Когда я делаю tickGroups [0]

array([{'price': 239.99, 'size': 1, 'tick': 0, 'sizeInBTC': 0.004166840285011875},
       {'price': 237.43, 'size': 1500, 'tick': -1, 'sizeInBTC': 6.317651518342248},
       {'price': 237.41, 'size': 1500, 'tick': -1, 'sizeInBTC': 6.318183732782949},
       ...,
       {'price': 238.55, 'size': 800, 'tick': -1, 'sizeInBTC': 3.353594634248585},
       {'price': 237.69, 'size': 5000, 'tick': -1, 'sizeInBTC': 21.035802936598092},
       {'price': 237.98, 'size': 22774, 'tick': 1, 'sizeInBTC': 95.69711740482394}],
      dtype=object)

и tickGroups [0] [0]

{'price': 239.99, 'size': 1, 'tick': 0, 'sizeInBTC': 0.004166840285011875}

tickGroups [:] возвращает все целиком

array([array([{'price': 239.99, 'size': 1, 'tick': 0, 'sizeInBTC': 0.004166840285011875},
       {'price': 237.43, 'size': 1500, 'tick': -1, 'sizeInBTC': 6.317651518342248},
       {'price': 237.41, 'size': 1500, 'tick': -1, 'sizeInBTC': 6.318183732782949},
       ...,
       {'price': 238.55, 'size': 800, 'tick': -1, 'sizeInBTC': 3.353594634248585},
       {'price': 237.69, 'size': 5000, 'tick': -1, 'sizeInBTC': 21.035802936598092},
       {'price': 237.98, 'size': 22774, 'tick': 1, 'sizeInBTC': 95.69711740482394}],
      dtype=object),
       array([{'price': 237.78, 'size': 1111, 'tick': -1, 'sizeInBTC': 4.67238623938094},
       {'price': 237.81, 'size': 5000, 'tick': 1, 'sizeInBTC': 21.02518817543417},
       {'price': 237.81, 'size': 5000, 'tick': 0, 'sizeInBTC': 21.02518817543417},
       ...,
       {'price': 244.48, 'size': 1400, 'tick': -1, 'sizeInBTC': 5.726439790575917},
       {'price': 244.33, 'size': 2000, 'tick': -1, 'sizeInBTC': 8.185650554577824},
       {'price': 244.21, 'size': 7500, 'tick': -1, 'sizeInBTC': 30.71127308464027}],
      dtype=object),
       array([{'price': 244.08, 'size': 10000, 'tick': -1, 'sizeInBTC': 40.970173713536546},
       {'price': 244.05, 'size': 7500, 'tick': -1, 'sizeInBTC': 30.73140749846343},
       {'price': 244.25, 'size': 20, 'tick': 1, 'sizeInBTC': 0.08188331627430911},
       ...,
       {'price': 254.0, 'size': 2000, 'tick': -1, 'sizeInBTC': 7.874015748031496},
       {'price': 253.83, 'size': 6, 'tick': -1, 'sizeInBTC': 0.023637867864318637},
       {'price': 253.82, 'size': 6, 'tick': -1, 'sizeInBTC': 0.023638799149003232}],
      dtype=object),
       ...,
       array([{'price': 17519.5, 'size': 10, 'tick': -1, 'sizeInBTC': 0.0005707925454493565},
       {'price': 17519.5, 'size': 10066, 'tick': 0, 'sizeInBTC': 0.5745597762493222},
       {'price': 17529.5, 'size': 100, 'tick': 1, 'sizeInBTC': 0.005704669271798968},
       ...,
       {'price': 17429.5, 'size': 9905, 'tick': -1, 'sizeInBTC': 0.5682893944175106},
       {'price': 17430.5, 'size': 4800, 'tick': 1, 'sizeInBTC': 0.2753793637589283},
       {'price': 17431.0, 'size': 500, 'tick': 1, 'sizeInBTC': 0.02868452756583099}],
      dtype=object),
       array([{'price': 17431.0, 'size': 1000, 'tick': 0, 'sizeInBTC': 0.05736905513166198},
       {'price': 17430.5, 'size': 2975, 'tick': -1, 'sizeInBTC': 0.17067783482975243},
       {'price': 17431.0, 'size': 1278, 'tick': 1, 'sizeInBTC': 0.07331765245826401},
       ...,
       {'price': 17450.0, 'size': 1000, 'tick': -1, 'sizeInBTC': 0.05730659025787966},
       {'price': 17458.0, 'size': 6000, 'tick': 1, 'sizeInBTC': 0.34368197960820257},
       {'price': 17460.0, 'size': 12549, 'tick': 1, 'sizeInBTC': 0.7187285223367698}],
      dtype=object),
       array([{'price': 17460.0, 'size': 145, 'tick': 0, 'sizeInBTC': 0.008304696449026346},
       {'price': 17460.0, 'size': 500, 'tick': 0, 'sizeInBTC': 0.0286368843069874},
       {'price': 17462.0, 'size': 100, 'tick': 1, 'sizeInBTC': 0.005726720879624327},
       ...,
       {'price': 17550.0, 'size': 197, 'tick': 0, 'sizeInBTC': 0.011225071225071225},
       {'price': 17549.0, 'size': 525, 'tick': -1, 'sizeInBTC': 0.029916234543278818},
       {'price': 17544.5, 'size': 50, 'tick': -1, 'sizeInBTC': 0.002849895978796774}],
      dtype=object)], dtype=object)

Итак, если я ' м пытаясь выбрать первую цену 239,99 например, я думал, что tickGroups [0, 0, 0] будет работать, но я получаю ошибку выше. np.shape(tickGroups) возвращает

(16130,)

1 Ответ

1 голос
/ 30 мая 2020

У вас есть массив, полный массивов, заполненных словарями, поэтому, например, tickGroups [0] [0] ['price'] должен дать вам цену, начиная с первого. Если вам нужны правильные размеры, вы должны снова поработать над созданием, тем не менее, в конце есть словари, а не списки.

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