我正在使用Python处理大型数据文件。我首先从几个不同的文件中获取数据并进行存储。下面提供了从一个文件中提取数据以获取“时间”数据的示例。然后,将数据(如“时间”)与其他文件中的数据作图或进行计算。
skip = int(input('\nSkip how many steps?\n'))
datai = loadtxt(filei,skiprows=(1+skip))
time = datai[:,0]
我的问题是,由不同文件创建的数组(如“时间”)通常不包含相同数量的元素。因此,当我尝试执行计算或绘图时会导致错误。例如:
ValueError: operands could not be broadcast together with shapes (128471,) (116102,)
有人知道如何从一维数组中删除元素,使其长度与参考数组相同(例如“时间”)吗?我知道如何从特定的数组中删除n个元素,但不知道如何执行“弄清楚'时间'的长度,然后使数组'温度'的长度相同”之类的方法,至少效率不高。
重要的是,仅从数组的末端删除元素-即,以便所有数组中的所有元素都保持其原始位置(“时间”的元素“ 2”与元素的“ 2”相同) “温度”)。
我很抱歉;这似乎是以前曾被问过的问题,但是到目前为止,我在网上找到解决方案并没有成功,可能是因为我不熟悉合适的搜索词(我不是经验丰富的Python用户)。
答案 0 :(得分:1)
我不确定该答案是否是您想要的,但是它应该可以工作:
x = [2,4,3,2,6,4,4,4,3,3,3]
y = [3,4,6]
y.append(7)
z = []
for i in range(len(y)):
z.append(x[i])
print(z)
print(y)
结果: [2,4,3,2], [3,4,6,7]
它的效率不会比x = x [:len(y)]差,但是由于y的大小在程序运行期间发生变化,因此不会分配额外的内存,因此x的大小为3.我认为这是它对您不起作用的原因,因为在程序启动时,解释器不知道较小的数组大小。