在python numpy中查找特定更改的行号



我有一个这样的文件:

C
C
C
C
C
C
C
C
B
C
C
C
C
C
C
C
C
C         
C        
C         
C        
C       
C
C            
C
C
B   
B   
B
B   
B   

我喜欢打印从C变为B的行号。就像这里的第9行和第27行一样。我只需要排号码。如何在numpy python中做到这一点。

谢谢

这是一个可能的解决方案,但它没有使用Numpy

f = open('yourfile.txt', 'r')
x = 0
for i in f:
x = x + 1
if i == 'B':
print('row' + str(x))

如果在纯numpy中工作(这是C级(,我建议您使用np.flatnonzero来比较相邻项目:

import numpy as np
x = np.loadtxt(r'your_file.txt', dtype='O')
marker_idx = np.flatnonzero((x[1:]=='B') & (x[:-1]=='C')) + 1 #default way
print(marker_idx + 1) #since you are counting from 1 for some reason

输出

[ 9 27]

相关内容

  • 没有找到相关文章

最新更新