【问题标题】:how to flip columns in reverse order using shell scripting/python如何使用 shell 脚本/python 以相反的顺序翻转列
【发布时间】:2023-03-28 15:40:01
【问题描述】:

亲爱的专家,我有一个小问题,我只想反转列。例如,我有一个排列成 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


【解决方案1】:

Perl 来救援!

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

【讨论】:

  • 感谢你们的支持...干杯!!!!!!
【解决方案2】:

您的数据类型是什么?在 python 中,如果您的数据是一个 Numpy 数组,那么只需执行data[:, ::-1]。它也适用于列表(但显然对于第一个维度。实际上它是 Python Slice 的一般行为(first、end、stride),其中省略了 first 和 last。它适用于任何支持索引的对象。

但如果它是您必须做的唯一数据操作,那么使用 Python 来做这件事可能有点矫枉过正。但是,根据数据的大小,它可能比原始字符串操作(使用 perl 或其他)更有效。

【讨论】:

  • 请注意,我的 Perl 解决方案不是“原始字符串操作”,它适用于数组。
  • 很好,我没有检查。确实不错!
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
相关资源
最近更新 更多