python - Python:对打印值进行排序
问题描述
这里,matrix 是列表的列表
此函数打印出 list1 和 matrix_a 之间的所有距离,但我不确定如何从 matrix_a 和 matrix_b 中获取相应的列表。
我不允许使用 scikit learn 或 numpy
list1 = [5, 3, 2, 8, 5, 10, 8, 1, 2]
matrix_a = [[1, 3, 3, 2, 2, 1, 7, 2, 1], [4, 3, 1, 1, 2, 1, 4, 8, 1], [3, 1, 3, 1, 2, 1, 2, 1, 1], [5, 4, 6, 6, 4, 10, 4, 3, 1], [5, 1, 2, 1, 2, 1, 2, 1, 1], [3, 1, 1, 1, 2, 1, 2, 1, 1], [1, 1, 1, 1, 2, 1, 1, 1, 1], [10, 10, 9, 3, 7, 5, 3, 5, 1], [4, 1, 1, 1, 2, 1, 3, 1, 1], [5, 1, 1, 1, 1, 1, 1, 1, 1]]
matrix_b = [[0], [0], [0], [1], [0], [0], [0], [1], [0], [0]]
def get_distance(list1, list2):
"""returns euclidian distance between 2 lists"""
return sum((p-q)**2 for p, q in zip(list1, list2)) ** .5
def get_k_nearest_labels(list1, matrix_a, matrix_b, k):
for x in range(len(matrix_a)):
a = get_distance(list1, matrix_a[x])
print(a)
解决方案
您可以将所有距离 ( a
) 存储在一个新列表中,对列表进行排序并选择k
最小的元素。
推荐阅读
- c - 何时唤醒读写器问题中的作者?在释放互斥锁之前还是之后?
- android - 如何开始一个没有父母的新活动?
- docker - BitBucket Pipeline 在 ssh 进入 DigitalOcean Droplet 后找不到容器
- python - Talos 多 GPU 功能
- python - 自动在网址末尾添加斜杠
- javascript - 如何在自动完成输入上设置 addEventListener 并提供多个源回调并一一使用
- javascript - JavaScript NodeJs - 如何重构这一点
- javascript - Firefox AddOn 扩展中 contextMenu 选项的可见性
- kubernetes - 如何从流利的位日志记录中排除命名空间
- javascript - 为什么innerHTML返回null