Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 如何获取和删除2D列表的第一个重复值?_Python_Arrays_Python 3.x - Fatal编程技术网

Python 如何获取和删除2D列表的第一个重复值?

Python 如何获取和删除2D列表的第一个重复值?,python,arrays,python-3.x,Python,Arrays,Python 3.x,我在python中有一个2D数组,如下所示: [[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0], [13.38, 5.78, 19.94, 5.76, 19.96, 11.28, 13.4, 11.3], [6.72, 5.78, 13.28, 5.76, 13.3, 11.28, 6.74, 11.3], [0.06, 5.78, 6.6, 5.76, 6.64, 11.28, 0.08, 11.3], [13.38, 0.16, 19.9

我在python中有一个2D数组,如下所示:

[[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0], 
[13.38, 5.78, 19.94, 5.76, 19.96, 11.28, 13.4, 11.3], 
[6.72, 5.78, 13.28, 5.76, 13.3, 11.28, 6.74, 11.3],
[0.06, 5.78, 6.6, 5.76, 6.64, 11.28, 0.08, 11.3], 
[13.38, 0.16, 19.94, 0.14, 19.96, 5.66, 13.42, 5.68], 
[6.72, 0.16, 13.28, 0.14, 13.3, 5.64, 6.74, 5.68],
[0.04, 0.18, 6.62, 0.14, 6.64, 5.64, 0.08, 5.68],
[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0]]   
[0.0,0.0,0.0,11.36,20.0,11.36,20.02,0.0]
是重复数组。
我要删除第一个重复值并保留最后一个值。
因此,我的输出应该是:

[[13.38, 5.78, 19.94, 5.76, 19.96, 11.28, 13.4, 11.3], 
[6.72, 5.78, 13.28, 5.76, 13.3, 11.28, 6.74, 11.3],
[0.06, 5.78, 6.6, 5.76, 6.64, 11.28, 0.08, 11.3], 
[13.38, 0.16, 19.94, 0.14, 19.96, 5.66, 13.42, 5.68], 
[6.72, 0.16, 13.28, 0.14, 13.3, 5.64, 6.74, 5.68],
[0.04, 0.18, 6.62, 0.14, 6.64, 5.64, 0.08, 5.68],
[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0]]  
你知道怎么做吗


谢谢

一种方法是使用熊猫模块:

import numpy as np
your_array=np.array([[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0], 
[13.38, 5.78, 19.94, 5.76, 19.96, 11.28, 13.4, 11.3], 
[6.72, 5.78, 13.28, 5.76, 13.3, 11.28, 6.74, 11.3],
[0.06, 5.78, 6.6, 5.76, 6.64, 11.28, 0.08, 11.3], 
[13.38, 0.16, 19.94, 0.14, 19.96, 5.66, 13.42, 5.68], 
[6.72, 0.16, 13.28, 0.14, 13.3, 5.64, 6.74, 5.68],
[0.04, 0.18, 6.62, 0.14, 6.64, 5.64, 0.08, 5.68],
[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0]])
要删除重复项,请使用:

import pandas as pd
df = pd.DataFrame(your_array)
df_without_duplicates = df.drop_duplicates(keep='last')
如果希望numpy数组作为输出,请使用:

new_array = df_without_duplicates.values
输出:

array([[13.38,  5.78, 19.94,  5.76, 19.96, 11.28, 13.4 , 11.3 ],
   [ 6.72,  5.78, 13.28,  5.76, 13.3 , 11.28,  6.74, 11.3 ],
   [ 0.06,  5.78,  6.6 ,  5.76,  6.64, 11.28,  0.08, 11.3 ],
   [13.38,  0.16, 19.94,  0.14, 19.96,  5.66, 13.42,  5.68],
   [ 6.72,  0.16, 13.28,  0.14, 13.3 ,  5.64,  6.74,  5.68],
   [ 0.04,  0.18,  6.62,  0.14,  6.64,  5.64,  0.08,  5.68],
   [ 0.  ,  0.  ,  0.  , 11.36, 20.  , 11.36, 20.02,  0.  ]])

一种方法是使用熊猫模块:

import numpy as np
your_array=np.array([[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0], 
[13.38, 5.78, 19.94, 5.76, 19.96, 11.28, 13.4, 11.3], 
[6.72, 5.78, 13.28, 5.76, 13.3, 11.28, 6.74, 11.3],
[0.06, 5.78, 6.6, 5.76, 6.64, 11.28, 0.08, 11.3], 
[13.38, 0.16, 19.94, 0.14, 19.96, 5.66, 13.42, 5.68], 
[6.72, 0.16, 13.28, 0.14, 13.3, 5.64, 6.74, 5.68],
[0.04, 0.18, 6.62, 0.14, 6.64, 5.64, 0.08, 5.68],
[0.0, 0.0, 0.0, 11.36, 20.0, 11.36, 20.02, 0.0]])
要删除重复项,请使用:

import pandas as pd
df = pd.DataFrame(your_array)
df_without_duplicates = df.drop_duplicates(keep='last')
如果希望numpy数组作为输出,请使用:

new_array = df_without_duplicates.values
输出:

array([[13.38,  5.78, 19.94,  5.76, 19.96, 11.28, 13.4 , 11.3 ],
   [ 6.72,  5.78, 13.28,  5.76, 13.3 , 11.28,  6.74, 11.3 ],
   [ 0.06,  5.78,  6.6 ,  5.76,  6.64, 11.28,  0.08, 11.3 ],
   [13.38,  0.16, 19.94,  0.14, 19.96,  5.66, 13.42,  5.68],
   [ 6.72,  0.16, 13.28,  0.14, 13.3 ,  5.64,  6.74,  5.68],
   [ 0.04,  0.18,  6.62,  0.14,  6.64,  5.64,  0.08,  5.68],
   [ 0.  ,  0.  ,  0.  , 11.36, 20.  , 11.36, 20.02,  0.  ]])

尝试以下方法:首先必须反转列表以保留最后一个元素,然后使用一个简单的for循环来避免重复。最后再次反转列表以获得所需的输出

# l is your list

l.reverse()
res = []
for x in l:
    if x not in res:
        res.append(x)
res.reverse()

尝试以下方法:首先必须反转列表以保留最后一个元素,然后使用一个简单的for循环来避免重复。最后再次反转列表以获得所需的输出

# l is your list

l.reverse()
res = []
for x in l:
    if x not in res:
        res.append(x)
res.reverse()

这可能是另一种解决办法。迭代地删除重复列表

x,y = 0,0
while x < len(l):
    y = x + 1
    while y < len(l):
        if l[y] == l[x]:
            l.pop(x)
            x = 0
            break
        y += 1
    else:
         x += 1
x,y=0,0
当x
这可能是另一种解决方案。迭代地删除重复列表

x,y = 0,0
while x < len(l):
    y = x + 1
    while y < len(l):
        if l[y] == l[x]:
            l.pop(x)
            x = 0
            break
        y += 1
    else:
         x += 1
x,y=0,0
当x