Python 列表中既有标量,也有 numpy array 时,按照标量数值排序方法

实例

# Python 列表中既有标量,也有 numpy array 时,按照标量数值排序方法
import numpy as np

X = np.array([3, 1, 2])
# [3 1 2]
Y = np.array([[-0.8, 0.4, 0.2],[0.6, 0.1, -0.9],[0.3, 0.8, 0.7]])
# [[-0.8  0.4  0.2]
#  [ 0.6  0.1 -0.9]
#  [ 0.3  0.8  0.7]]

X_Y= [[X[i], Y[:,i]] for i in range(len(X))]
print(X_Y)
# [[3, array([-0.8,  0.6,  0.3])], [1, array([0.4, 0.1, 0.8])], [2, array([ 0.2, -0.9,  0.7])]]


X_Y.sort(key=lambda x: x[0]) # 按照标量数值从小到大排列
print(X_Y)
# [[1, array([0.4, 0.1, 0.8])], [2, array([ 0.2, -0.9,  0.7])], [3, array([-0.8,  0.6,  0.3])]]
X_Y.sort(reverse=True, key=lambda x: x[0]) # 按照标量数值从大到小排列
print(X_Y)
# [[3, array([-0.8,  0.6,  0.3])], [2, array([ 0.2, -0.9,  0.7])], [1, array([0.4, 0.1, 0.8])]]

参考

  • https://stackoverflow.com/questions/46558862/how-to-sort-a-list-of-tuples-that-contain-numpy-array

猜你喜欢

转载自blog.csdn.net/sdnuwjw/article/details/111602486