编写一个程序要求如下:1使用python语言调用numpy2输入一个10003的二维数组ndarray3对二维数组按照第0列和第1列的数值进行分组两行比较若第0列的值相差小于35第一列的值相差小于16的分在一组。4将分组结果写在第三列属于同一个分组的标记为同一个整形数字5给出完整的注释
import numpy as np
输入1000*3的二维数组
array_2d = np.random.rand(1000, 3)
按照第0列和第1列的数值进行分组,两行比较,若第0列的值相差小于35,第一列的值相差小于16的分在一组
group_id = 1 # 分组编号从1开始 for i in range(len(array_2d)): # 如果当前行没有分组编号,则进行分组 if array_2d[i, 2] == 0: for j in range(i+1, len(array_2d)): # 如果第0列和第1列的数值都在范围内,则加入同一个分组 if abs(array_2d[i, 0] - array_2d[j, 0]) < 35 and abs(array_2d[i, 1] - array_2d[j, 1]) < 16: if array_2d[j, 2] == 0: array_2d[j, 2] = group_id array_2d[i, 2] = group_id group_id += 1
输出分组结果
print(array_2d)
原文地址: https://www.cveoy.top/t/topic/bIKE 著作权归作者所有。请勿转载和采集!