【问题标题】:Getting a reversed slice of an array that includes the base element获取包含基本元素的数组的反向切片
【发布时间】:2014-05-12 21:05:13
【问题描述】:

我正在使用 numpy 数组。我正在尝试计算一个数组,其中包含从某个中心展开的元素的乘积。我的代码目前看起来像这样,其中psinumpy.array()

up=psi[position:position+width]
pre_down=psi[position-width+1:position+1]
down=pre_down[::-1]
ac=up*down

有没有更优雅的 Pythonic 方式让数组“向下”?

down=psi[position:position-width:-1]

position-width 为 0 时不起作用。

【问题讨论】:

    标签: python arrays numpy slice


    【解决方案1】:

    当您需要切分到元素 0 时,可以使用None 作为切片的结尾。

    end = position - width - 1 if position > width else None
    down = psi[position:end:-1]
    

    【讨论】:

      【解决方案2】:

      您可以使用or 关键字将值0 替换为None,从而为您提供基本元素。

      down=psi[position:position-width or None:-1]
      

      【讨论】:

      • or 在索引中的作用是什么?
      • 在其他任何地方都是一样的。基本上,你是说你想要position-width,如果它不为零,或者1,否则。
      • 您的答案被标记为待审核,因为没有任何解释。可以加一点前言或解释吗?
      • @Dan or 通常用于 Python 中的三元表达式,早在为此添加 if/else 之前。在这种情况下,我不认为它表达了提问者的意图。
      • @kindall:我不想要1,否则我想要基本元素,所以我猜是None
      猜你喜欢
      • 2015-09-07
      • 1970-01-01
      • 2022-01-13
      • 2018-09-23
      • 2015-05-08
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多