Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何按数组元素的第一项排序?_Python_Numpy_Sorting - Fatal编程技术网

Python 如何按数组元素的第一项排序?

Python 如何按数组元素的第一项排序?,python,numpy,sorting,Python,Numpy,Sorting,假设我有一个表单数组 a = [ [ [12, 4, 2, 5] , [10, 12, 4, 2], [2, 2, 10, 2], [7, 10, 3 ,2] ], [ [13, 23, 4, 5] , [10, 12, 4, 2], [2, 2, 12, 1], [7, 10, 3 ,2] ], [ [4, 4, 2, 5] , [10, 12, 4, 2], [2, 2, 3, 2], [7, 10, 3 ,2] ], ] 我想按每个元素的第一列进行排序,因此a的第一个

假设我有一个表单数组

a = [ 
  [ [12, 4, 2, 5] , [10, 12, 4, 2], [2, 2, 10, 2], [7, 10, 3 ,2] ],
  [ [13, 23, 4, 5] , [10, 12, 4, 2], [2, 2, 12, 1], [7, 10, 3 ,2] ],
  [ [4, 4, 2, 5] , [10, 12, 4, 2], [2, 2, 3, 2], [7, 10, 3 ,2] ], 
] 

我想按每个元素的第一列进行排序,因此a的第一个条目应为:

[ [2, 2, 10, 2], [7, 10, 3 ,2], [10, 12, 4, 2], [12, 4, 2, 5] ]
我找到了一个类似于[a[:,1].argsort]的解决方案,并在第一个索引上尝试了for循环,如下所示:

for i in range(0,4):
  a[i,...] = a[a[i,0,:].argsort()]

这不管用。我真的无法解决这个问题。

试试:

排序的_数组=[sortedx,key=lambda y:y[0]表示a中的x] 这是怎么回事

首先,我们使用列表理解将数组a映射到一个新的数组中,对每个元素执行一个操作,例如[x+1表示my_numbers中的x]

我们对a的每个元素执行的操作是使用sorted。这将返回数组的副本,通过比较键返回的值进行排序

键必须是返回“可排序”值的函数。在这里,我们使用lambda创建一个单行函数,该函数返回传递给它的数组中的第一项。这确保了我们根据a的每个元素的第一列进行排序

尝试:

排序的_数组=[sortedx,key=lambda y:y[0]表示a中的x] 这是怎么回事

首先,我们使用列表理解将数组a映射到一个新的数组中,对每个元素执行一个操作,例如[x+1表示my_numbers中的x]

我们对a的每个元素执行的操作是使用sorted。这将返回数组的副本,通过比较键返回的值进行排序

键必须是返回“可排序”值的函数。在这里,我们使用lambda创建一个单行函数,该函数返回传递给它的数组中的第一项。这确保了我们根据a的每个元素的第一列进行排序

可以使用沿第一列索引的数组,并适当扩展DIM,然后:

可以使用沿第一列索引的数组,并适当扩展DIM,然后:


如果不想使用lambda方法,请尝试以下方法:

def select(item):
  return item[0]


s_array=[]
for i in a:
  s_array.append(sorted(i, key=select))

如果不想使用lambda方法,请尝试以下方法:

def select(item):
  return item[0]


s_array=[]
for i in a:
  s_array.append(sorted(i, key=select))

此解决方案不再允许我使用matplot绘制数组。公平地说,您没有提到您正在使用matplot“\_ツ_/“此解决方案不再允许我使用matplot绘制阵列。公平地说,您没有提到您正在使用matplot”\_ツ_/¯
def select(item):
  return item[0]


s_array=[]
for i in a:
  s_array.append(sorted(i, key=select))