【问题标题】:delete row from numpy array based on partial string in python根据python中的部分字符串从numpy数组中删除行
【发布时间】:2022-12-06 12:19:57
【问题描述】:

我有一个非常大的 numpy 数组,看起来与我的示例相似。我试图检测的部分字符串是“F_H”,它通常位于数组的第 0 列。

a = np.array([['#define', 'bad_stringF_H', 'some_value'],
              ['#define', 'good_string', 'some_value2'],
              ['#define', 'good_string_2', 'some_value3'],
              ['#define', 'bad_string2F_H', 'some_value4']])

如果在行中检测到该部分字符串,我只想删除整个数组,因此所需的输出将是这样的。

[['#define' 'good_string' 'some_value2']
 ['#define' 'good_string_2' 'some_value3']]

【问题讨论】:

    标签: python arrays string numpy


    【解决方案1】:

    您可以使用 NumPy 的布尔索引创建一个新数组,该数组仅包含不包含字符串“F_H”的行:

    import numpy as np
    
    a = np.array([['#define', 'bad_stringF_H', 'some_value'],
                  ['#define', 'good_string', 'some_value2'],
                  ['#define', 'good_string_2', 'some_value3'],
                  ['#define', 'bad_string2F_H', 'some_value4']])
    
    mask = np.array([x[1].find('F_H') < 0 for x in a])
    print(mask)
    new_a = a[mask]
    
    print(new_a)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多