Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:从列表中删除无序数字_Python_Numpy - Fatal编程技术网

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 本次任务的主要目的是: 您正在处理来自一系列实验的数据集,每个 它由三部分组成。这些实验是在实验室中进行的 随机

我现在正在学习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

本次任务的主要目的是:

您正在处理来自一系列实验的数据集,每个 它由三部分组成。这些实验是在实验室中进行的 随机顺序。每个实验都分配了一个 实验编号和零件编号,合并为一个小数点 这个号码叫做身份证号码。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]