Python:从列表中删除无序数字
我现在正在学习python,但我似乎不知道如何从数组中删除元素,这是不符合顺序的 说吧,我有Python:从列表中删除无序数字,python,numpy,Python,Numpy,我现在正在学习python,但我似乎不知道如何从数组中删除元素,这是不符合顺序的 说吧,我有 np.array([1.3,2.2,2.3,4.2,5.1,3.2,5.3,2.1,1.1,5.2,3.1]) 我需要删除1.3和1.1,因为缺少1.2。4.2也需要删除,因为我没有4.1和4.3。简而言之,我想从列表中删除顺序错误的编号 我该怎么做 这三个是正确的:5.1、5.2和5.3 本次任务的主要目的是: 您正在处理来自一系列实验的数据集,每个 它由三部分组成。这些实验是在实验室中进行的 随机
np.array([1.3,2.2,2.3,4.2,5.1,3.2,5.3,2.1,1.1,5.2,3.1])
我需要删除1.3和1.1,因为缺少1.2。4.2也需要删除,因为我没有4.1和4.3。简而言之,我想从列表中删除顺序错误的编号
我该怎么做
这三个是正确的:5.1、5.2和5.3
本次任务的主要目的是:
您正在处理来自一系列实验的数据集,每个
它由三部分组成。这些实验是在实验室中进行的
随机顺序。每个实验都分配了一个
实验编号和零件编号,合并为一个小数点
这个号码叫做身份证号码。id号是通过分隔
实验编号和零件编号的小数点。例如
实验编号17第3部分已分配id编号17.3。
注意,您可以通过以下公式从id号计算实验号:
向下舍入到最接近的整数。
您注意到由于错误,
对于一些实验来说,这三个部分都还没有完成。
为了进一步分析,您需要排除一个或多个
没有更多的零件可用。你可以放心地假设,如果有
3个id号,实验号相同,实验为
完成
**问题定义**
创建一个作为输入的函数
一个id号向量,返回一个id号向量,其中
不完整的实验已被删除。不可用的id号
删除的顺序必须与原始向量中的顺序相同
解决方案模板
由于您的问题有一组确定的值,您可以使用以下逻辑:
一,。对数组进行排序并将其存储在临时数组中。
二,。现在开始遍历这个排序数组并检查差异,比如,您可以使用这种方法
if(array[1] - array[0] == 0.1) && (array[2] - array[1] == 0.1))
move to array[3]
else
add array[0] to del_list
遵循此操作直到到达最后一个元素,注意边界条件。
3.现在遍历此del_列表并从原始数组中删除元素,您可以使用以下逻辑:
a = [1, 2, 3, 4]
a.remove(2) # 2 is not the position!
print a
[1, 3, 4]
你试过什么?你介意多发布一些输入和输出示例吗?它应该只检查每个数字的*.1、*.2和*.3,还是还有更多?如果示例3.1缺失,它应该删除所有3.*还是仅删除3.2,因为这是唯一与之相邻的数字?我不知道从哪里开始,但我可以将作业张贴在帖子中。恐怕你的问题目前没有多大意义。试着更清楚地说明你需要做什么。作业非常明确地说明了要做什么:对于列表中的每个元素,使用
round
删除小数部分,然后查看三个.1、.2、.3实验是否在列表中。如果是这样,就保留它,否则就不要。试着把问题分解成小块。e、 g:以第一个数字为例-您的函数如何确定是否需要删除它?(提示:寻找具有相同实验的其他数字)那么如何判断另一个数字是否来自相同实验?(提示:如果按照@tobias_k的建议执行int(n)
或round(n)
,会发生什么情况)。然后试试你的代码,想想为什么它还不起作用(即使对于专业的程序员来说,第一次就正确的代码也是非常罕见的!)
if(array[1] - array[0] == 0.1) && (array[2] - array[1] == 0.1))
move to array[3]
else
add array[0] to del_list
a = [1, 2, 3, 4]
a.remove(2) # 2 is not the position!
print a
[1, 3, 4]