假设我有一个歌曲名称列表
songlist = np.array(['1.mp3', '2.mp3','3.mp3'])
根据numpy文档,有一个有用的char函数,称为rstrip
:
对于自身中的每个元素,返回一个带有后缀字符的副本 删除。
由于文件扩展名恰好位于字符串的结尾,因此我尝试使用此rstrip
删除文件扩展名
np.core.char.rstrip(songlist,'.mp3')
但是,它给了我以下输出
array(['1','2',''],dtype ='
我在这里做错了什么?如何使用rstrip
函数正确删除文件扩展名?
答案 0 :(得分:2)
我认为numpy不是处理字符串的最佳工具。我会亲自使用本机python。
songlist = np.array(['1.mp3', '2.mp3','3.mp3'])
# extract the part you want with split()
songlist = [s.split('.')[0] for s in songlist]
# could also just slice
# songlist = [s[:-4] for s in songlist]
答案 1 :(得分:2)
如果要使用numpy字符串函数:
s = np.array([np.str.rpartition(s,'.mp3')[0] for s in songlist])
您还可以查看partition
和replace
答案 2 :(得分:1)
如@dgumo所述,rstrip
除去字符而与它们的顺序无关。要仅删除“ .mp3”,
[song.replace('.mp3' , '') for song in songlist]
或者,如果您确定字符串以.mp3结尾
[song[:-4] if song.endswith('.mp3') else song for song in songlist]