import numpy as np

def group_array(arr): group_num = 1 group_dict = {} for i in range(arr.shape[0]): if i not in group_dict.keys(): group_dict[i] = group_num for j in range(i+1, arr.shape[0]): if abs(arr[i,0]-arr[j,0])<35 and abs(arr[i,1]-arr[j,1])<16: if j not in group_dict.keys(): group_dict[j] = group_num group_num += 1 return np.append(arr, np.array(list(group_dict.values()))[:,np.newaxis], axis=1)

测试

arr = np.random.randint(0, 100, size=(1000, 2)) result = group_array(arr) print(result)

编写一个程序要求如下:1使用python语言调用numpy2输入一个10002的二维数组ndarray3对二维数组按照第0列和第1列的数值进行分组两行比较若第0列的值相差小于35第一列的值相差小于16的分在一组。4将分组结果写在第三列属于同一个分组的标记为同一个整形数字

原文地址: https://www.cveoy.top/t/topic/bIKa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录