Замена указанных элементов в списке (python) с использованием массива индекса - сообщение об ошибке - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь создать большой список для последующего добавления к фрейму данных panda, элементы которого соответствуют условиям данных в этой строке (т. Е. Базальное условие + некоторое лекарство ... и т. Д.).

Эти условия появляются в блоках; то есть первые 500 строк (соответствующие первым 500 кадрам данных изображения) соответствуют базальным условиям (поэтому каждый элемент должен быть «базальным»), следующие 500 с добавлением некоторого количества лекарственного средства и так далее.

Точный размер каждого из этих блоков и первой строки блока варьируется от эксперимента к эксперименту, поэтому в идеале код должен быть в состоянии генерировать эти блоки на основе чисел, которые я ввожу, определяя время различных условий для каждый эксперимент

Для этого я сначала создаю список «базальных» повторов в соответствии с общим числом строк, затем использую временные переменные, обозначающие начало каждого условия, чтобы перезаписать каждую запись из этого индекса в конец списка с помощью следующее условие. Код:

epochs = ['basal'] * frames

if ttx == True:
    ttx_epoch = np.arange(ttx_t*freq,frames,1, dtype=int)
    epochs[ttx_epoch] = 'TTX'
if lo_k == True:
    lok_epoch = np.arange(lo_k_t*freq,frames,1, dtype=int)
    epochs[lok_epoch] = 'Low K'
if hi_k == True:
    hik_epoch = np.arange(hi_k_t*freq,frames,1, dtype=int)
    print(hik_epoch)
    epochs[hik_epoch] = 'High K'

при попытке запустить выдается сообщение об ошибке:

TypeError: в скалярный индекс могут быть преобразованы только целочисленные скалярные массивы

Несмотря на указание типа массива индекса arange как int

Есть идеи, где я иду не так?

1 Ответ

0 голосов
/ 31 октября 2018

решено: найдя альтернативный путь

Я понял, что вся задача была излишней, поскольку я мог достичь желаемого результата, указав диапазон для индексации в самом кадре данных (а не генерировать массив для последующей вставки в кадр данных.

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