Получение определенных элементов из массивов - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть переменная, которая называется вычислением, данные которой приведены ниже. Игнорирование первого массива, который состоит только из одного значения, второй и третий массивы имеют 3 элемента внутри.

Я пытаюсь получить доступ и использовать для построения графика определенные значения из этой расчетной переменной, соответствующей 2-му массиву (из 3-х), но только первые элементы в этом 2-м массиве. Как бы я закодировал переменную, чтобы получить эти элементы из моей расчетной переменной?

Например, я попытался распечатать (вычисление [1]), которое дает весь этот второй массив. Я также попытался print (вычисления [1] [0]), чтобы попытаться получить 0-й элемент из 2-го массива, но это дает только первый массив из всего этого 2-го массива.

Выполнение печати (расчет ) дает:

(array(86391360), array([[[-4.48794000e+05,  0.00000000e+00,  0.00000000e+00],
        [ 1.49597420e+11,  0.00000000e+00,  0.00000000e+00]],

       [[-4.48793336e+05, -7.72416000e+06,  0.00000000e+00],
        [ 1.49597199e+11,  2.57472000e+08,  0.00000000e+00]],

       [[-4.48791343e+05, -1.54483200e+07,  0.00000000e+00],
        [ 1.49596535e+11,  5.14943216e+08,  0.00000000e+00]],

       ...,

       [[ 5.07357741e+05, -7.72182336e+10,  0.00000000e+00],
        [-1.68852984e+11, -6.29442198e+10,  0.00000000e+00]],

       [[ 5.07420359e+05, -7.72259563e+10,  0.00000000e+00],
        [-1.68873839e+11, -6.31851333e+10,  0.00000000e+00]],

       [[ 5.07481946e+05, -7.72336789e+10,  0.00000000e+00],
        [-1.68894351e+11, -6.34260754e+10,  0.00000000e+00]]]), array([[[ 0.00000000e+00, -8.94000000e+02,  0.00000000e+00],
        [ 0.00000000e+00,  2.98000000e+04,  0.00000000e+00]],

       [[ 1.53782948e-04, -8.94000000e+02,  0.00000000e+00],
        [-5.12180648e+01,  2.97999546e+04,  0.00000000e+00]],

       [[ 3.07565355e-04, -8.93999999e+02,  0.00000000e+00],
        [-1.02435950e+02,  2.97998184e+04,  0.00000000e+00]],

       ...,

       [[ 7.30723767e-03, -8.93826810e+02,  0.00000000e+00],
        [-2.43370658e+03, -2.78818274e+04,  0.00000000e+00]],

       [[ 7.18780521e-03, -8.93826800e+02,  0.00000000e+00],
        [-2.39392910e+03, -2.78851623e+04,  0.00000000e+00]],

       [[ 7.06836086e-03, -8.93826790e+02,  0.00000000e+00],
        [-2.35414765e+03, -2.78884422e+04,  0.00000000e+00]]]))

Спасибо за любую поддержку!

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Используя ответ AbbeGijly, я смог получить то, что мне нужно, используя это для l oop, на тот случай, если кто-нибудь еще наткнется на это и сочтет его полезным.

for i in range(len(A)):
    col = A[i,:,0]
    print(col)
0 голосов
/ 27 апреля 2020

Вызов вашего второго массива A:

A = calculation[1]

A имеет три измерения (которые мы видим из тройных уровней квадратных скобок [). Назовем измерения «столбцы», «строки» и «страницы».

Чтобы извлечь первую трехэлементную строку A на первой странице:

row0 = A[0,0,:]    # page 0, row 0, all columns

To извлечь первый двухэлементный столбец A на первой странице:

col0 = A[0,:,0]    # page 0, all rows, column 0

Чтобы извлечь угловой элемент [0,0] из всех страниц:

corner0 = A[:,0,0]    # all pages, row 0, column 0
...