我有一个删除重复项的问题。我的程序基于循环生成元组(x,y),这些元组然后用作图中的节点。最终的节点数组/矩阵为:
[[ 1. 1. ]
[ 1.12273268 1.15322175]
[..........etc..........]
[ 0.94120695 0.77802849]
**[ 0.84301344 0.91660517]**
[ 0.93096269 1.21383287]
**[ 0.84301344 0.91660517]**
[ 0.75506418 1.0798641 ]]
数组长度为22。现在,我需要移除重复的项(参见 **)。因此我使用了以下代码:
def urows(array):
df = pandas.DataFrame(array)
df.drop_duplicates(take_last=True)
return df.drop_duplicates(take_last=True).values
很好,但我仍然遇到了以下问题:
0 1
0 1.000000 1.000000
....... etc...........
17 1.039400 1.030320
18 0.941207 0.778028
**19 0.843013 0.916605**
20 0.930963 1.213833
**21 0.843013 0.916605**
所以去重并没有移除任何内容。我测试了一下,发现节点实际上是相同的,具体如下:
print urows(total_nodes)[19,:]
---> [ 0.84301344 0.91660517]
print urows(total_nodes)[21,:]
---> [ 0.84301344 0.91660517]
print urows(total_nodes)[12,:] - urows(total_nodes)[13,:]
---> [ 0. 0.]
为什么它不能工作?如何删除那些重复的值?
还有一个问题...
假设两个值“几乎”相等(比如x1和x2),有没有一种方法可以将它们以一种方式替换,使它们都相等?如果它们“几乎”相等,我想用x1替换x2。