【问题标题】:Delete an element from numpy array从 numpy 数组中删除一个元素
【发布时间】:2018-11-16 22:35:42
【问题描述】:

我正在与numpy array 合作如下:

  input_series =  ['BUY' 'SELL' 'BUY' 'SELL' 'BUY' 'SELL' 'SELL' 'SELL' 'BUY' 'SELL' nan nan
     nan nan nan nan nan nan nan]

我正在搜索数组中的特定值,如果元素存在则删除

我已经这样做了:

delete_indices = list()
val = ['BUY','SELL','No','YES']
found_index = np.where(lowercase_series_nparray == val)                                                
delete_indices.append(found_index)

delete_indices得到如下:

[(array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([0, 2, 4, 8], dtype=int64),), (array([1, 3, 5, 6, 7, 9], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),), (array([], dtype=int64),)]

在我尝试删除之后:

new_output_series = numpy.delete(input_series, delete_indices)

但是出现setting an array element with a sequence.的错误

【问题讨论】:

    标签: python pandas numpy numpy-ndarray


    【解决方案1】:

    如果来自这样的数组:

    input_series = np.array(['BUY', 'a', 'b', 'SELL', 'YES', 'SELL', 'No', 'c', 'd', 'SELL'])
    

    你想删除这些元素:

    ['BUY','SELL','No','YES']
    

    只需将这些设置为数组:

    val = np.array(['BUY','SELL','No','YES'])
    

    然后:

    new_output_series = np.setdiff1d(input_series,val)
    

    输出:

     ['a' 'b' 'c' 'd']
    

    【讨论】:

      【解决方案2】:

      以下语句为您提供所需的索引:

       found_index = np.in1d(input_series, val).nonzero()[0]
      

      然后:

       new_array = numpy.delete(input_series, found_index)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-13
        • 2018-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多