【问题标题】:Rearrange rows of a given numpy 2D array given a list with the permutations给定具有排列的列表,重新排列给定 numpy 2D 数组的行
【发布时间】:2020-12-27 09:04:36
【问题描述】:

有一种非常简单的方法可以像这样用 numpy 置换 2d 数组的

array1 = np.array([[11, 22, 33, 44, 55],
                  [66,  77,  88,  99, 100]])

print("Original array:")
print(array1)
permutation = [1,3,0,4,2]

result = array1[:, permutation]
print("New array:")
print(result)

这个输出:

Original array:
[[ 11  22  33  44  55]
 [ 66  77  88  99 100]]
New array:
[[ 22  44  11  55  33]
 [ 77  99  66 100  88]]

Visual representation (from w3resource.com)

有没有一种方法可以优雅地完成相同的事情,但只针对

【问题讨论】:

  • result = array1[permutation]?
  • 哇哦,谢谢@Marat,我觉得我正在下放

标签: python arrays numpy multidimensional-array


【解决方案1】:

正如@Marat 在 cmets 中提到的,您可以通过您为列描述的类似高级索引来执行相同操作:

array1 = np.array([[11, 22, 33, 44, 55],
                  [66,  77,  88,  99, 100]])
permutation = [1,0]
array1[permutation]
#[[ 66  77  88  99 100]
# [ 11  22  33  44  55]]

当你提前索引numpy数组时,默认是调用rows。

【讨论】:

    猜你喜欢
    • 2013-12-14
    • 1970-01-01
    • 2023-03-27
    • 2019-06-19
    • 2011-07-05
    • 2021-12-26
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多