【问题标题】:Deleting entries in a 2D array at specific locations删除二维数组中特定位置的条目
【发布时间】:2014-09-07 22:58:14
【问题描述】:

我有一个 (242,32768) 数组,我需要在每 22 个条目后删除 2-3 个条目,以将原始数组转换为 (220,32768) 数组。

换句话说,我需要每 22 个条目跳过一次,删除 2-3 个条目,然后再跳转 22 个,以此类推。最后我需要一个 (220,32768),比如说,我可以分成 10 个 (22,32768) 子数组。

【问题讨论】:

  • 你能解释一下吗?
  • 你的数组由哪种数据组成?
  • 大家好,感谢您的回复。假设数据条目是来自光谱仪的值。每 22 个条目后有 2-3 个坏行(光谱仪调整到另一个源)。所以我只需要在每 22 行之后摆脱那些 2-3 坏行。我一直在尝试使用 np.where() 但我正在努力建立正确的条件(语法方面)来实现这一点.
  • 欢迎来到 StackOverflow (SO)! SO 不是代码编写服务。您应该已经提供了您尝试过的代码。然后,我们很乐意帮助您解决问题。

标签: python numpy indexing multidimensional-array


【解决方案1】:

这是我的想象,希望它能奏效。试着让我知道。(你的问题还不是很清楚我的理解是这个。你可以给出一个 MWE(最小的工作示例)!)

import numpy as np
y=a
step = 22
for i in range(3):
    y=np.delete(y,np.s_[0:-1:step])
    step = step-1
y.reshape(220,32768)
print y

编辑:如果您不想删除前 3 个元素,请使用 step 和 np.s_[0:-1:step]),因为数组索引以 0 开头

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 2021-02-23
    • 2017-01-22
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多