我有一个2x3x4 Numpy数组,看起来像这样:

[[[1 3 2 4]
  [0 1 0 1]
  [0 1 2 3]]
 [[1 4 2 3]
  [1 0 1 1]
  [0 1 2 3]]]

如何通过每个2D矩阵中的第一行对此进行排序,即实现输出:

[[[1 2 3 4]
  [0 0 1 1]
  [0 2 1 3]]
 [[1 2 3 4]
  [1 1 1 0]
  [0 2 3 1]]]

请注意,每个2D矩阵中的第2行和第3行也会随着第一行移动索引.

推荐答案

也许你可以用list comprehension:

import numpy as np

arr = np.array([[
    [1, 3, 2, 4],
    [0, 1, 0, 1],
    [0, 1, 2, 3],
], [
    [1, 4, 2, 3],
    [1, 0, 1, 1],
    [0, 1, 2, 3],
]])
print('Before:')
print(arr)
sorted_arr = np.array([a[:, a[0].argsort()] for a in arr])
print('After:')
print(sorted_arr)

Output:

Before:
[[[1 3 2 4]
  [0 1 0 1]
  [0 1 2 3]]
 [[1 4 2 3]
  [1 0 1 1]
  [0 1 2 3]]]
After:
[[[1 2 3 4]
  [0 0 1 1]
  [0 2 1 3]]
 [[1 2 3 4]
  [1 1 1 0]
  [0 2 3 1]]]

Python相关问答推荐

根据条件将新值添加到下面的行或下面新创建的行中

即使在可见的情况下也不相互作用

TARete错误:类型对象任务没有属性模型'

使用numpy提取数据块

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

如何在Python脚本中附加一个Google tab(已经打开)

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

多处理队列在与Forking http.server一起使用时随机跳过项目

Python逻辑操作作为Pandas中的条件

Pandas GroupBy可以分成两个盒子吗?

在matplotlib中删除子图之间的间隙_mosaic

如何在Pyplot表中舍入值

在Python中计算连续天数

手动设置seborn/matplotlib散点图连续变量图例中显示的值

从列表中获取n个元素,其中list [i][0]== value''

如何从pandas DataFrame中获取. groupby()和. agg()之后的子列?

根据客户端是否正在传输响应来更改基于Flask的API的行为

按条件添加小计列

SpaCy:Regex模式在基于规则的匹配器中不起作用

python3中np. divide(x,y)和x/y有什么区别?'