在Python中,根据特定顺序排列括号中的数据

在Python中,根据特定顺序排列括号中的数据,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我有一个数组,编程后,我得到非零数据的位置和值,看起来像(x,y,z)=(行,列,值) 此结果按“从最小行数到最大行数”的顺序排列 是否有任何方法可以使结果按“从最小列数到最高列数”和“从最小值到最高列数”的顺序排列 谢谢你的帮助 这是我使用的代码: import numpy as np groupMatrix = np.array([ [1, 1, 0, 0], [1, 0, 0, 0], [0, 0, 0, 2], [3, 3, 0, 2] ]) i = np.nonzero(groupM

我有一个数组,编程后,我得到非零数据的位置和值,看起来像(x,y,z)=(行,列,值)

此结果按“从最小行数到最大行数”的顺序排列

是否有任何方法可以使结果按“从最小列数到最高列数”和“从最小值到最高列数”的顺序排列

谢谢你的帮助

这是我使用的代码:

import numpy as np

groupMatrix = np.array([
[1, 1, 0, 0],
[1, 0, 0, 0],
[0, 0, 0, 2],
[3, 3, 0, 2]
])
i = np.nonzero(groupMatrix)

res = np.vstack([i, groupMatrix[i]])
print(list(zip(*res)))

您可以使用内置
sorted()
函数中的
key
参数将键更改为第i个索引:

array = [(0, 0, 1), (0, 1, 1), (1, 0, 1), (2, 3, 2), (3, 0, 3), (3, 1, 3), (3, 3, 2)]

ascending_column_order = sorted(array, key=lambda x: x[1])

你当然可以这样做,
在这种情况下,您可以通过
键对
元组的
列表
进行排序,键是

import numpy as np

groupMatrix = np.array([
[1, 1, 0, 0],
[1, 0, 0, 0],
[0, 0, 0, 2],
[3, 3, 0, 2]
])
i = np.nonzero(groupMatrix)

res = np.vstack([i, groupMatrix[i]])
arr = list(zip(*res))

col_sorted = sorted(arr, key=lambda item: item[1]) # sorted by column
val_sorted = sorted(arr, key=lambda item: item[2]) # sorted by value
希望它能帮助你

import numpy as np

groupMatrix = np.array([
[1, 1, 0, 0],
[1, 0, 0, 0],
[0, 0, 0, 2],
[3, 3, 0, 2]
])
i = np.nonzero(groupMatrix)

res = np.vstack([i, groupMatrix[i]])
arr = list(zip(*res))

col_sorted = sorted(arr, key=lambda item: item[1]) # sorted by column
val_sorted = sorted(arr, key=lambda item: item[2]) # sorted by value