热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

16_NumPy数组ndarray以任何顺序排列行和列

16_NumPy数组ndarray以任何顺序排列行和列NumPy数组ndarray的行和列可以使用称为花哨索引的机制以任何顺序重新排列(替换)。分别

16_NumPy数组ndarray以任何顺序排列行和列

NumPy数组ndarray的行和列可以使用称为花哨索引的机制以任何顺序重新排列(替换)。

分别描述行和列的情况。


  • 以任何顺序对列进行排序
  • 以任何顺序对行进行排序

使用np.sort()或np.argsort()进行升序或降序排序(排序)。

详情请参阅以下文章


  • 15_Numpy使用sort和argsort函数进行(行・列)排序

以下面的二维阵列为例。

import numpy as npa = np.arange(10, 35).reshape(5, 5)
print(a)
# [[10 11 12 13 14]
# [15 16 17 18 19]
# [20 21 22 23 24]
# [25 26 27 28 29]
# [30 31 32 33 34]]

以任何顺序对列进行排序

可以通过以任何顺序引用索引列表来获得排序后的ndarray。

col_swap = a[:, [3, 2, 4, 0, 1]]
print(col_swap)
# [[13 12 14 10 11]
# [18 17 19 15 16]
# [23 22 24 20 21]
# [28 27 29 25 26]
# [33 32 34 30 31]]

如果要反转,切片::-1比列表更容易。

col_inverse = a[:, ::-1]
print(col_inverse)
# [[14 13 12 11 10]
# [19 18 17 16 15]
# [24 23 22 21 20]
# [29 28 27 26 25]
# [34 33 32 31 30]]

也可以仅提取(选择)特定的列。即使它们重叠也可以。

col_select = a[:, [2, 4, 0]]
print(col_select)
# [[12 14 10]
# [17 19 15]
# [22 24 20]
# [27 29 25]
# [32 34 30]]col_select2 = a[:, [2, 2, 2]]
print(col_select2)
# [[12 12 12]
# [17 17 17]
# [22 22 22]
# [27 27 27]
# [32 32 32]]

以任何顺序对行进行排序

行与列相同。

向后的索引::可以省略([…,:]等效于[…])。

row_swap = a[[3, 2, 4, 0, 1], :]
print(row_swap)
# [[25 26 27 28 29]
# [20 21 22 23 24]
# [30 31 32 33 34]
# [10 11 12 13 14]
# [15 16 17 18 19]]row_swap = a[[3, 2, 4, 0, 1]]
print(row_swap)
# [[25 26 27 28 29]
# [20 21 22 23 24]
# [30 31 32 33 34]
# [10 11 12 13 14]
# [15 16 17 18 19]]row_inverse = a[::-1]
print(row_inverse)
# [[30 31 32 33 34]
# [25 26 27 28 29]
# [20 21 22 23 24]
# [15 16 17 18 19]
# [10 11 12 13 14]]row_select = a[[2, 4, 0]]
print(row_select)
# [[20 21 22 23 24]
# [30 31 32 33 34]
# [10 11 12 13 14]]row_select2 = a[[2, 2, 2]]
print(row_select2)
# [[20 21 22 23 24]
# [20 21 22 23 24]
# [20 21 22 23 24]]

推荐阅读
author-avatar
bug
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有