首页 > 解决方案 > 使用索引数组替换列表中的指定元素(python) - 错误消息

问题描述

我正在尝试创建一个大列表,以便稍后添加到熊猫数据框中,该列表的元素对应于该行中数据的条件(即基础条件,+一些药物......等)。

这些条件成块出现;即前 500 行(对应于前 500 帧成像数据)对应于基础条件(因此每个元素都应该是“基础”),接下来的 500 行添加了一些药物,依此类推。

这些块中的每一个以及块的第一行的精确大小因实验而异,因此理想情况下,代码应该能够根据我输入的数字生成这些块,指定每个实验的不同条件的时间

为此,我首先根据总行数生成一个重复的“基础”列表,然后使用表示每个条件开始的时序变量用下一个条件覆盖从该索引到列表末尾的每个条目. 代码是:

epochs = ['basal'] * 帧数

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

有什么想法我哪里出错了吗?

标签: pythonarraysindexing

解决方案


已解决:通过寻找替代方式

我意识到整个任务是不必要的,因为我可以通过指定一个范围来索引到数据帧本身(而不是生成一个数组然后插入到数据帧中)来实现所需的结果。


推荐阅读