我循环遍历了两个数组,用以对其中一组数据进行数据扩充。数据如下:第一张图是需要扩充的,第二张是扩充范围,以第一列为基准,最邻近填充第二列
txt = pd.read_csv('F:\\Practice\\RamanSpectrum\\Savitzky-Golay\\actinolite\\R040063.txt', header=None) # 第一张图的数据读入
array = np.array(txt, dtype='float32') # 转换为数组
center_array = get_unique('F:\\Practice\\RamanSpectrum\\Savitzky-Golay') # 第二张图的数据读入
list_arr = list(center_array[:, 0]) # 设置一个列表用以索引指引
# 遍历第一张图,把第二张图对应的位置前后填充起来
for x in range(len(array)):
print(x)
if x == len(array) - 1:
break
num = int(round(array[x + 1, 0] - array[x, 0], 4) * 100) - 1
a = int(array[x, 0] * 100)/100
b = int(array[x + 1, 0] * 100)/100
loc1 = list_arr.index(a)
loc2 = list_arr.index(b)
center_array[loc1:loc1 + num // 2 + 1, 1] = array[x, 1]
center_array[loc1 + num // 2 + 1:loc2 + 1, 1] = array[x + 1, 1]
因为出现了错误,所以我尝试输出x,查看哪个数字出现错误,
我之前使用的是round保留两位数,但我只需要强制进行后两位的选取,并不需要四舍五入。
所以我换成了int,但还是出现了问题
Python中str.index如果找不到就会报错,可以用异常处理,或者换成str.count
麻烦采纳一下哟,谢谢๑•́₃•̀๑