Skip to main content
 首页 » 编程设计

python之从 numpy 数组中删除一个元素

2025年05月04日22Renyi-Fan

我正在使用 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) 

但是在用序列设置数组元素时出现错误。

请您参考如下方法:

如果来自这样的数组:

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']