如何使用 shell 脚本/python 以相反顺序翻转列

问题描述 投票:0回答:2

亲爱的专家,我有一个小问题,我只想反转列。例如,我有一个按 4 列排列的数据集,我需要将最后一列放在前面,依此类推......这项工作如何完成。 ..我希望有专家一定能回答我的问题。谢谢

输入数据示例

      1 2 3 4 5
      6 7 8 9 0
      3 4 5 2 1
      5 6 7 2 3

我需要如下输出

         5 4 3 2 1
         0 9 8 7 6
         1 2 5 4 3
         3 2 7 6 5 
python linux shell unix reverse
2个回答
0
投票

Perl 来救援!

perl -lane 'print join " ", reverse @F' < input-file
  • -n
    逐行读取文件,每行运行
    -e
    后面指定的代码
  • -l
    从输入中删除换行符并将其添加到输出
  • -a
    在填充 @F 数组的空白上分割输入行
  • reverse 反转数组
  • join 将列表转换为字符串

0
投票

您的数据类型是什么?在 python 中,如果您的数据是 Numpy 数组,那么只需执行

data[:, ::-1]
即可。它也适用于列表(但显然适用于第一个维度。事实上,这是 Python Slice 的一般行为(first、end、stride),其中省略了first和last。它适用于任何支持索引的对象。

但是,如果这是您必须执行的唯一数据操作,那么使用 Python 来执行此操作可能有点大材小用。然而,它可能比原始字符串操作(使用 perl 或其他)更有效,具体取决于数据的大小。

© www.soinside.com 2019 - 2024. All rights reserved.