Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在python中对x,y坐标的多维数组进行排序

在python中对x,y坐标的多维数组进行排序
EN

Stack Overflow用户
提问于 2016-04-12 04:53:27
回答 1查看 590关注 0票数 1

所以我尝试在python中对元素的多维数组进行排序。数组是一堆乱七八糟的东西,这让它变得如此困难,但不幸的是,这正是opencv函数返回的内容。

这些是y,x坐标(向后我知道....)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[array([[[ 13, 178]],[[ 50, 179]],[[ 49, 258]],[[ 12, 257]]]), 
array([[[ 58,  93]],[[105,  94]],[[104, 171]],[[ 57, 170]]]), 
array([[[ 13,  93]],[[ 50,  94]],[[ 49, 171]],[[ 12, 170]]]), 
array([[[ 58,   9]],[[105,  10]],[[104,  86]],[[ 57,  85]]]), 
array([[[13,  9]], [[50, 10]],[[49, 86]],[[12, 85]]]), 
array([[[ 58, 178]],[[105, 179]],[[104, 257]],[[ 57, 257]]])]

现在我需要的排序方式是按照每个numpy数组的第一个元素(让我们称它为a),然后是降序中的a的第二个元素。我需要在a的第一个元素上按升序打破所有的平局。

所以这最终会是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[array([[[ 13, 178]],[[ 50, 179]],[[ 49, 258]],[[ 12, 257]]]),
array([[[ 58, 178]],[[105, 179]],[[104, 257]],[[ 57, 257]]]),
array([[[ 13,  93]],[[ 50,  94]],[[ 49, 171]],[[ 12, 170]]]),
array([[[ 58,  93]],[[105,  94]],[[104, 171]],[[ 57, 170]]]),
array([[[13,  9]], [[50, 10]],[[49, 86]],[[12, 85]]]),
array([[[ 58,   9]],[[105,  10]],[[104,  86]],[[ 57,  85]]])]

现在,我已经了解了如何使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
items[each][first][0][Y_POS(or X_POS)]

其中每个是要访问的nparray (有6个),Y_POS是指y位置,X_POS是指x位置。

另外两个变量first和0永远不会改变。

我真的不知道从哪里开始让它高效运行,所以任何帮助都是非常感谢的。请记住,坐标采用Y,X表示法。

提前感谢大家。

EN

回答 1

Stack Overflow用户

发布于 2016-04-12 06:08:18

假设A是包含所有数据的4d数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
I = np.argsort(A[:, 0, 0, 0])
A = A[I[::-1]]
I = np.argsort(A[:, 0, 0, 1], kind='mergesort')
A = A[I[::-1]]

首先我们按逆序对Y排序,然后也按逆序对X排序,当X相等时,结果是X按降序排列,而Y按升序排列。请注意,我们必须使用稳定的排序算法来防止第一次排序的结果被打乱;mergesort应该可以做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36563886

复制
相关文章
python 多维数组的排序
这几天写php程序,发现php里有一个array_multisort()函数十分好用,可以轻松对多维数组进行排序,查了查python的相关资料,视乎没有一个比较直接的函数来完成多维数组的排序
py3study
2020/01/08
3K0
使用 Python 对波形中的数组进行排序
假设我们采用了一个未排序的输入数组。我们现在将对波形中的输入数组进行排序。数组 'arr[0..n-1]' 以波形排序,如果 arr[0] >= arr[1] <= arr[2] >= arr[3] <= arr[4] >= .....
很酷的站长
2023/02/22
6.9K0
使用 Python 对波形中的数组进行排序
PHP按特定key进行多维数组排序
实际上array_multisort 是PHP内置的方法,官方有说明: PHP - array_multisort
雪碧君
2023/02/15
2.7K0
在 JavaScript 中对数组进行排序
排序是您在学习JavaScript时将使用的众多基本方法之一。让我们回顾一下如何对不同的数据类型使用排序方法。
腾龙
2022/06/02
4.9K0
Python中对list进行排序
很多时候,我们需要对List进行排序,Python提供了两个方法 对给定的List L进行排序, 方法1.用List的成员函数sort进行排序 方法2.用built-in函数sorted进行排序(从2.4开始) 这两种方法使用起来差不多,以第一种为例进行讲解: 从Python2.4开始,sort方法有了三个可选的参数,Python Library Reference里是这样描述的 cmp:cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: "cmp=lambda x,y: cmp(x.lower(), y.lower())" key:key specifies a function of one argument that is used to extract a comparison key from each list element: "key=str.lower" reverse:reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.In general, the key and reverse conversion processes are much faster than specifying an equivalent cmp function. This is because cmp is called multiple times for each list element while key and reverse touch each element only once. 以下是sort的具体实例。 实例1: >>>L = [2,3,1,4] >>>L.sort() >>>L >>>[1,2,3,4] 实例2: >>>L = [2,3,1,4] >>>L.sort(reverse=True) >>>L >>>[4,3,2,1] 实例3: >>>L = [('b',2),('a',1),('c',3),('d',4)] >>>L.sort(cmp=lambda x,y:cmp(x[1],y[1])) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 实例4: >>>L = [('b',2),('a',1),('c',3),('d',4)] >>>L.sort(key=lambda x:x[1]) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 实例5: >>>L = [('b',2),('a',1),('c',3),('d',4)] >>>import operator >>>L.sort(key=operator.itemgetter(1)) >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 实例6:(DSU方法:Decorate-Sort-Undercorate) >>>L = [('b',2),('a',1),('c',3),('d',4)] >>>A = [(x[1],i,x) for i,x in enumerate(L)] #i can confirm the stable sort >>>A.sort() >>>L = [s[2] for s in A] >>>L >>>[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 以上给出了6中对List排序的方法,其中实例3.4.5.6能起到对以List item中的某一项 为比较关键字进行排序. 效率比较: cmp < DSU < key 通过实验比较,方法3比方法6要慢,方法6比方法4要慢,方法4和方法5基本相当 多关键字比较排序: 实例7: >>>L = [('d',2),('a',4),('b',3),('c',2)] >>> L.sort(key=lambda x:x[1]) >>> L >>>[('d', 2), ('c', 2), ('b', 3), ('a', 4)] 我们看到,此时排序过的L是仅仅按照第二个关键字来排的,如果我们想用
py3study
2020/01/09
2.4K0
PHP如何对二维数组(多维数组)进排序
在 PHP 中,可以使用函数 array_multisort() 来对二维数组进行排序处理。该函数可以按照指定的键或值对数组进行排序。
兔云小新LM
2023/09/12
5600
PHP如何对二维数组(多维数组)进排序
PHP的多维数组排序
熟悉PHP的小伙伴都知道有很多内置函数可以对数组进行排序操作或者自定义一些排序方法(冒泡)等等。
用户2475223
2019/12/17
3.7K0
python对字典进行排序
标准的python字典是无序的。即使对(键、值)对进行了排序,也无法以保留排序的方式将它们存储在dict中。
IT工作者
2022/07/07
1.9K0
PHP中多维数组自定义排序uasort()
php 内置的排序函数很多,正反各种排,常用的排序函数: sort() – 以升序对数组排序 rsort() – 以降序对数组排序 asort() – 根据值,以升序对关联数组进行排序 ksort() – 根据键,以升序对关联数组进行排序 arsort() – 根据值,以降序对关联数组进行排序 krsort() – 根据键,以降序对关联数组进行排序 基本都能满足需求了,关于这些函数的使用方法就不多啰嗦了,但是在项目的实际开发中还是会有些更加苛刻的排序需求,今天要介绍的排序函数是: uasort
沈唁
2018/05/24
2.5K0
python中选择排序法对数组进行升序排序_sort函数对字符串数组排序
先说一下三者的区别 sort, sorted 是用在 list 数据类型中的排序方法 argsort 是用在 numpy 数据类型中的排序方法( numpy 里也有一个 sort 方法,下面会讲)
全栈程序员站长
2022/09/22
3K0
在 Hibernate Search 5.5 中对搜索结果进行排序
“秩序,秩序”- 有时不仅仅下议院尊敬的议员需要被喊着让排序,而且在特殊情况下 Hibernate 的查询结果也需要排序。
知忆
2021/06/08
2.9K0
Python中如何动态生成多维数组
多维数组其实就是多个一维数组的嵌套,Python中有原生的list,类似一个动态数组。 所以动态生成多维数组的思想就是在list中动态嵌套添加list。
卡尔曼和玻尔兹曼谁曼
2019/01/22
3.1K0
Python中如何动态生成多维数组
java 对多维数组的工具类(比如遍历多维数组工具类)
目录 1 遍历int类型二维数组 2 使用流遍历int 类型二维数组 3 遍历 float 类型二维数组 4 遍历 double 类型二维数组 5 遍历 int 类型 3维数据 6 遍历 Float 类型 3维数据 1 遍历int类型二维数组 public static void printErIntArray(int[][] matrix){ for (int i = 0; i < matrix.length; i++) { //this equals to the row in our
一写代码就开心
2022/06/28
2K0
在 Python 中对服装图像进行分类
图像分类是一种机器学习任务,涉及识别图像中的对象或场景。这是一项具有挑战性的任务,但它在面部识别、物体检测和医学图像分析等现实世界中有许多应用。
很酷的站长
2023/08/11
5681
在 Python 中对服装图像进行分类
使用asort函数对PHP数组进行升序排序
PHP是一门功能强大的语言,数组是PHP中十分常用的数据结构之一。在实际开发中,经常需要对数组进行排序。PHP提供了多个函数用于对数组进行排序,其中asort函数可以实现对数组进行升序排序。
很酷的站长
2023/08/25
5000
使用asort函数对PHP数组进行升序排序
为python(x,y)安装python
为了给我的python(x,y) 2.7.10安装xlwt包,在windows的命令行界面执行如下命令即可:
py3study
2020/01/08
8330
为python(x,y)安装python
Skill语言实现将一个table中的坐标point(x,y)按照x和y进行从小到大排序的函数
/***************** 对table中的point进行排序,按照type值将x或者y从小到大排 *******************/ defun(TableSort (table type) table_len=length(table) let((sortedTable) sortedTable=makeTable("table") for(i 0 table_len-1 sortedTable[i]=table[i] ) for(i 0 table_len-2
黑马Amos
2023/03/21
7500
Python多维数组和矩阵
>>> a1=array([1, 2, 3]) >>> a2=array([0.3, 0.2, 0.3]) >>> a1*a2 array([ 0.3,  0.4,  0.9]) >>> a1=array([1, 2, 3]) >>> a2=array([0.3, 0.2, 0.3]) >>> a1*a2 array([ 0.3,  0.4,  0.9])
py3study
2020/01/10
1.4K0
点击加载更多

相似问题

在python中对多维数组进行排序

10

在python中对多维数组进行排序

13

对python多维数组进行排序?

34

Python:根据升序x数组对y值数组进行排序

44

如何对协坐标的x值或y值进行排序?

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文