【问题标题】:Delete items in subarrays of a master array删除主数组的子数组中的项目
【发布时间】:2018-02-22 07:59:30
【问题描述】:

假设我有以下 3x4 数组

master_array = [[1, 3, 4, 5], 
                [6, 5, 4, 1],
                [7, 8, 4, 1]]

然后,我想从 3 个 1x4 子数组中的每一个中删除数字 4。我会使用以下内容吗?

for i in range(master_array.shape[0]):
    np.delete(master_array[i], 3)

那么,当我打印 master_array 时,我会得到吗?

               [[1, 3, 5], 
                [6, 5, 1],
                [7, 8, 1]]

【问题讨论】:

  • 我需要通过索引来删除。所以,我有一个 14k x 136 的 numpy 数组。我想删除特定索引处的 5 个实例,我们称它们为索引 = [122, 125, 130, 131, 135]。因此,对于所有 14k 子数组,我想删除位于索引处的值。

标签: python numpy


【解决方案1】:

如果master_array 是一个列表列表,就像在您的示例中一样,您可以这样做

master_array = [[1, 3, 4, 5], 
                [6, 5, 4, 1],
                [7, 8, 4, 1]]

for row in master_array:
    del row[2]

如果 master_array 确实是一个 numpy 数组,您只需这样做

master_array = np.array([[1, 3, 4, 5], 
                         [6, 5, 4, 1],
                         [7, 8, 4, 1]])

np.delete(master_array, 2, axis=1)

【讨论】:

  • 我明白了,我错过了轴 = 1。当我在所有删除后打印 master_array 时,我得到: at 0x7f2e6f4bcba0>。编辑:明白了!我输入了子数组,而不是 master_array。感谢您提供列表和数组的解决方案。
猜你喜欢
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 2021-10-19
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多