numpy Python Lists -返回列表中已知子串之前的每第n个元素的列表

t9aqgxwy  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(80)

我有一个这样的数组:

['6.00', '1.85', 'X', '2.25', '1.26', 'X', '6.50', '1.80', 'X', '6.50', '1.95', 'X', '34.00', '5.50']

有谁知道我怎么才能返回一个数组的每个第三个元素之前的'X'?:

['6.00', '2.25', '6.50', '6.50']

我已经通过下面的代码删除了每个第2和第3个元素,但是当列表中有更多的元素超过最后一个'X'或者'X'不是均匀间隔时,它就会中断:

data = ['6.00', '1.85', 'X', '2.25', '1.26', 'X', '6.50', '1.80', 'X', '6.50', '1.95', 'X', '34.00', '5.50']
x = np.array(data)
x = np.delete(x, np.arange(1, x.size, 3))
x = np.delete(x, np.arange(1, x.size, 2))
kt06eoxx

kt06eoxx1#

通过使用位置偏移(由np.nonzero找到),其中x == 'X'

x[np.nonzero(x == 'X')[0] - 2]
array(['6.00', '2.25', '6.50', '6.50'], dtype='<U5')

相关问题