我有两个包含numpy数组的列表Ii0Iv0.我用argsort()Ii0中的元素重新排序以生成新的列表Ii01.我想用相同的顺序对Iv0中的元素进行重新排序以产生新的列表Iv01.我给出了当前和预期的输出.

import numpy as np
Ii0 = [np.array([[0, 1],[0, 2],[1, 3],[2, 4],[4,3]]),
       np.array([[0, 1],[0, 2],[1, 3],[2, 5],[4,3],[3,4]])]

Iv0 = [np.array([[10],[20],[30],[40],[50]]),
        np.array([[25],[38],[41],[97],[65],[54]])]

Ii01 = [i[i[:,1].argsort()] for i in Ii0]

Iv01 = [i[i[:,0].argsort()] for i in Iv0]
print("Iv01 =",Iv01)

电流输出为

Iv01 = [array([[10],
       [20],
       [30],
       [40],
       [50]]), array([[25],
       [38],
       [41],
       [54],
       [65],
       [97]])]

预期输出为

Iv01 = [array([[10],
               [20],
               [30],
               [50],
               [40]]),array([[25],
               [38],
               [41],
               [65],
               [54],
               [97]])]

推荐答案

使用:

Iv01 = [y[x[:,1].argsort()] for x, y in zip(Ii0, Iv0)]
print("Iv01 =",Iv01)

Output

Iv01 = [array([[10],
       [20],
       [30],
       [50],
       [40]]), array([[25],
       [38],
       [41],
       [65],
       [54],
       [97]])]

或者,使用np.take_along_axis:

Iv01 = [np.take_along_axis(y, x[:, 1].argsort().reshape((-1, 1)), 0) for x, y in zip(Ii0, Iv0)]

Python相关问答推荐

正在设置字段.需要为假,因为错误列表索引必须是整数或切片,而不是字符串

使用itertools出现第n个子串

获取Azure Pipelines以从pyproject.toml(而不是relevments_dev.文本)安装测试环境

Ibis中是否有一个ANY或ANY_UTE表达,可以让我比较子查询返回的一组值中的值?

使用Python和PRNG(不是梅森龙卷风)有效地生成伪随机浮点数在[0,1)中均匀?

使用argsorted索引子集索引数组

Pandas 在时间序列中设定频率

使用pandas、matplotlib和Yearbox绘制时显示错误的年份

在Python和matlab中显示不同 colored颜色 的图像

无法使用equals_html从网址获取全文

大小为M的第N位_计数(或人口计数)的公式

如何从.cgi网站刮一张表到rame?

如何在python polars中停止otherate(),当使用when()表达式时?

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

如何从pandas的rame类继承并使用filepath实例化

如何使用Python以编程方式判断和检索Angular网站的动态内容?

Python—从np.array中 Select 复杂的列子集

梯度下降:简化要素集的运行时间比原始要素集长

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

matplotlib图中的复杂箭头形状