在不丢失数据点的情况下加入两个列表 - python
Joining two lists without losing data points - python
我有一个数据集,其中包含有关角度和距离的信息。
当尝试绘制角度与距离时,我意识到这些点没有“组织起来”。
因此,我尝试将两个列表(角度和距离)加入字典中,然后按键组织字典。最后,我定义了两个新列表,一个是键,另一个是值。
像这样:
x = dict(zip(angle, dist))
new_dict = {}
y = sorted(x.keys())
for i in y:
new_dict[i] = x[i]
sorted_angle = new_dict.keys()
sorted_dist = new_dict.values()
我面临的问题是原始角度列表的长度与 sorted_angle 的长度完全不同。
我在这里丢失了数据点吗?如果是这样,我该如何更正它?
谢谢大家!
看起来您在 angle
列表中有重复的值,这就是您看到大小减小的原因。字典的键必须是唯一的。如果您只想按 angle
对两个列表进行排序,您可以改为这样做:
sorted_dist = [x for _, x in sorted(zip(angle, dist))]
sorted_angle = sorted(angle)
较旧的 python (2*) 在列出 .keys() 时不会保留良好的排序。我建议这个简单的解决方案:
import numpy as np
ind = np.argsort(dist)
sorted_angle = angle[ind]
sorted_dist = dist[ind]
我有一个数据集,其中包含有关角度和距离的信息。 当尝试绘制角度与距离时,我意识到这些点没有“组织起来”。 因此,我尝试将两个列表(角度和距离)加入字典中,然后按键组织字典。最后,我定义了两个新列表,一个是键,另一个是值。
像这样:
x = dict(zip(angle, dist))
new_dict = {}
y = sorted(x.keys())
for i in y:
new_dict[i] = x[i]
sorted_angle = new_dict.keys()
sorted_dist = new_dict.values()
我面临的问题是原始角度列表的长度与 sorted_angle 的长度完全不同。
我在这里丢失了数据点吗?如果是这样,我该如何更正它?
谢谢大家!
看起来您在 angle
列表中有重复的值,这就是您看到大小减小的原因。字典的键必须是唯一的。如果您只想按 angle
对两个列表进行排序,您可以改为这样做:
sorted_dist = [x for _, x in sorted(zip(angle, dist))]
sorted_angle = sorted(angle)
较旧的 python (2*) 在列出 .keys() 时不会保留良好的排序。我建议这个简单的解决方案:
import numpy as np
ind = np.argsort(dist)
sorted_angle = angle[ind]
sorted_dist = dist[ind]