对于包含不同数量元素的两个1D数组,如何从一个数组中删除元素,使其与另一个数组的大小相同?

2024-09-24 00:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python处理大型数据文件。我首先从几个不同的文件中获取数据并存储它。下面为“时间”数据提供了从一个文件中提取数据的示例。然后我将数据(如“时间”)与其他文件中的数据进行对比,或者进行计算。你知道吗

skip        = int(input('\nSkip how many steps?\n'))
datai       = loadtxt(filei,skiprows=(1+skip))
time        = datai[:,0]

我的问题是,从不同文件创建的数组(如“time”)通常不包含相同数量的元素。所以当我试图进行计算或绘制图表时,这会导致错误。例如:

ValueError: operands could not be broadcast together with shapes (128471,) (116102,) 

有人知道如何从1D数组中删除元素,使其与引用数组的长度相同(如“时间”)吗?我知道如何从一个特定的数组中剪切n个元素,但不知道如何做“计算出‘时间’的长度”,然后使数组的‘温度’保持相同的长度”,至少效率不高。你知道吗

重要的是,元素只从数组的末端移除——即,所有数组中的所有元素都保持在其原始位置(“time”的元素“2”与“temperature”的元素“2”相同)。你知道吗

我很抱歉;这似乎是以前可能被问过的问题,但到目前为止,我还没有成功地在网上找到解决方案,可能是因为我不熟悉合适的搜索词(我不是一个有经验的Python用户)。你知道吗


Tags: 文件数据元素示例inputtime数据文件时间
1条回答
网友
1楼 · 发布于 2024-09-24 00:29:53

我不确定这个答案是否是你想要的,但它应该有用:

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。我假设这就是它不适合您的原因,因为解释器在程序启动时不知道较小的数组大小。你知道吗

相关问题 更多 >