从 numpy 数组中删除一个元素
Delete an element from numpy array
我正在与 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.
以下语句为您提供了所需的索引:
found_index = np.in1d(input_series, val).nonzero()[0]
然后:
new_array = numpy.delete(input_series, found_index)
如果来自这样的数组:
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']
我正在与 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.
以下语句为您提供了所需的索引:
found_index = np.in1d(input_series, val).nonzero()[0]
然后:
new_array = numpy.delete(input_series, found_index)
如果来自这样的数组:
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']