函数的作用是:删除字符串前后的字符

2024-09-30 16:25:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图删除以下数组中的所有内容,除了两个数字和中间的,。在

这是阵列: [array([[ 1948.97753906, 1058.23937988]], dtype=float32)]

这个数组的大小总是在变化(可以有1对数字或6对等等),并且填充了不同的数字,但是格式始终保持不变。在

我现在有下面的代码,但是,我认为只有当数组中有一对数字时,这才有效??在

final = str(self.lostfeatures).strip('[array([[ ').strip(']], dtype=float32)')

任何帮助将不胜感激!在


Tags: 代码self内容格式数字数组arrayfinal
3条回答

如果这只是前缀/后缀,请使用replace

final = str(self.lostfeatures).replace('[array([[','').replace(']], dtype=float32)', '')

您可以使用regex执行类似的操作:

^{pr2}$

这也会给你们一个数字数组本身(所以从那个里转换成浮点数很简单)。在

但是。。。如果要执行str(lostfeatures),则原始文件必须已经在数组中。你为什么要选线呢?您应该能够像这样直接提取数值数组:

lostfeatures[0][0]

(你似乎有两个层次的间接性。。。lostfeatures[0]=array([[ 1948.97753906, 1058.23937988]],然后lostfeatures[0][0]==[1948.97753906, 1058.23937988])。目前还不清楚您的数据结构到底是什么样子,但这将是迄今为止最快的。在

我假设你有一个2dnumpy数组(self.features)of(坐标对?)你想格式化每一行(位置?),例如:

for pair in self.features: 
    print '{0}, {1}'.format(*pair)

就像你的例子。我想这能回答你的问题。在

>>> x = "[array([[ 1948.97753906, 1058.23937988]], dtype=float32)]"
>>> print x.split("[[")[1].split("]]")[0].replace(",","")

相关问题 更多 >