Как в numpy языка Python получить индекс элемента массива?

Генерирую список массивов array, которые представляют из себя наборы конечных разностей: их мы видим в столбцах с дельтами.

введите сюда описание изображения

И вот теперь задача. Пользователь задает порядок будущего полинома, и это определяет соответствующий столбец. В нем количество разностей различно: мне надо получить индекс последнего числа (последней разности) в определенном столбце. Пишу код, дающий ошибку:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Код:

def func(x):
    return np.sin(x)

def poly(order):
    # строим колонки X и Y:
    x_i_list = [round( (0.1*np.pi*i), 4 ) for i in range(0, 11)]
    y_i_list = []
    for x in x_i_list:
        y_i = round( (func(x)), 4 ) 
        y_i_list.append(y_i)

    # получаем дельты:
    n=order
    if n < len(y_i_list):
        result = [ np.diff(y_i_list, n=d) for d in np.arange(1, len(y_i_list)) ]
        print(result)
    else:
        print(f'Определите порядок полинома меньше {len(y_i_list)}')
    index = result.index(result[order-1][-1])
    return index
    
func(3)  # задается порядок полинома 3, 
         # то есть нужна разность по колонке с 3-й дельтой. 
         # Там индекс последней разности 7

Ответы (1 шт):

Автор решения: passant

Индекс последнего элемента в ЛЮБОМ массиве numpy (или точнее - в любом индексируемом объекте) если очень надо, ВСЕГДА можно получить как last_index=len(arr)-1. Хотя в python благодаря соответствующему синтаксису оператора for необходимость в использовании такой конструкции весьма сомнительна.

→ Ссылка