python - 对于两个包含不同数量元素的一维数组,如何从一个数组中删除元素,使其与另一个数组大小相同?
问题描述
我正在使用 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 用户)。
解决方案
我不确定该答案是否是您正在寻找的答案,但它应该可以工作:
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。我假设这就是它对您不起作用的原因,因为解释器在程序启动时不知道 small_array 的大小。
推荐阅读
- python - 尝试仅在 tkinter GUI 中水平移动(而不是垂直移动)时冻结标签
- r - 在 R 中编辑数据表中的文本字符串
- php - 为什么 PHP number_format() 改变数字?
- php - 如何创建一个仅与 expo react 本机应用程序连接的 json php api?
- javascript - Promise.all 并等待所有错误
- javascript - 如何禁用输入按下
- sweetalert2 - sweetalet2 commonJS 基本示例
- image - 404 在 Safari 上,但在 Chrome 中使用图像时很好
- javascript - 在反应应用程序中使用符号时出错
- java - Java:使用三元检查setter中的null