我有一个这样的文件:
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]