选择列表中前 5 个不同值的所有行
Selecting all rows with the first 5 different values of a list
我有一个包含 100 个元素的预定义列表,其值表示聚类标签。
首先,我想从列表中找到前 5 个不同的集群标签。
然后,我想select所有具有五个值之一的行作为入口,最后将它们的索引和标签写入一个新数组。
我该如何调整我的代码才能实现?
我想我必须使用循环,但由于我是 python 的新手,我不知道如何正确设置它。
list = np.array(list)
new_array = []
for x in list:
new_array.append(list[index, value])
print(new_array)
您可以使用 np.unique
获取列表的唯一值:
first_vals = np.unique(list)[:5]
new_array = []
for index, value in enumerate(list):
if value in first_vals:
new_array.append([index, value])
print(new_array)
输出:
[[0, 0], [1, 0], [2, 1], [3, 0], [4, 2], [5, 1], [6, 3], [10, 4], [11, 4], [12, 1], [14, 3], [15, 1], [16, 3], [17, 2], [18, 3]]
(注意:使用 Python 内建函数的名称作为变量名是不好的做法,例如 list
我有一个包含 100 个元素的预定义列表,其值表示聚类标签。 首先,我想从列表中找到前 5 个不同的集群标签。 然后,我想select所有具有五个值之一的行作为入口,最后将它们的索引和标签写入一个新数组。
我该如何调整我的代码才能实现? 我想我必须使用循环,但由于我是 python 的新手,我不知道如何正确设置它。
list = np.array(list)
new_array = []
for x in list:
new_array.append(list[index, value])
print(new_array)
您可以使用 np.unique
获取列表的唯一值:
first_vals = np.unique(list)[:5]
new_array = []
for index, value in enumerate(list):
if value in first_vals:
new_array.append([index, value])
print(new_array)
输出:
[[0, 0], [1, 0], [2, 1], [3, 0], [4, 2], [5, 1], [6, 3], [10, 4], [11, 4], [12, 1], [14, 3], [15, 1], [16, 3], [17, 2], [18, 3]]
(注意:使用 Python 内建函数的名称作为变量名是不好的做法,例如 list