我想整理np.数组按一定的顺序,输入数组a:
a = np.array([[ 2, 2, 1,],
[ 3, 3, 3,],
[ 2, 3, 2,]])
我想得到输出:
^{pr2}$
正如您可能猜到的,这种排序的思想是在数组中创建一个对称(以及其他一些与此无关的内容)。在
我的问题是,为了对数组进行排序,我只进行随机洗牌:
^{3}$
其中,symmetry
函数为真,如果元素的排列与条件匹配。在
因此,我正在寻找更有效的方法来排序数组,以便通过我的求值函数。在
我应该把机器学习技术应用到我的问题上吗?在
另外,我正在寻找任何建议,评论,想法或想法。。。在
Tags:
注意,你有对称性,因为你的元素允许它(正确的数字3,2和1,对称性是可能的)。假设你考虑到这一点,你要找的是放射状的。下面的算法可以做到这一点:
结果是:
^{pr2}$我不是排序算法方面的专家,也许有更快的方法可以做到这一点,但它肯定比洗牌和等待最佳结果更快。在
对算法的解释如下:
得到所有单元格的坐标(X,Y)。
计算从所有坐标到中心单元格的距离 (在我的算法中,我假设矩阵是大小奇数的正方形 行/列)。
对距离进行排序并获得索引(而不是距离 价值观)。
对X和Y坐标应用相同的排序。
对原始数组进行排序。
相关问题 更多 >
编程相关推荐