从numpy数组中删除括号

问题描述 投票:-3回答:1

我有一个数组,其字符串表示形式打印如下

['w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04']

这是一个numpy数组,有什么方法我可以删除这些括号,我尝试'.'join(thearray)但我得到:

Type Error: sequence item 0: expected instance, Numpy.ndarray found

我理想情况下这将是字符串表示打印如下:

'w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04'

任何的意见都将会有帮助!提前致谢。

python arrays numpy
1个回答
3
投票

对于你的Numpy数组,它包含str对象,而不是数字对象,所以ndarray不能工作。此外,数组文字(括号内的文本)必须加括号,否则它将被视为多个参数。

  • np.array(['w_49c9417','w_b6ae946','w_1596a47','w_b68d04'])有效,因为参数是单个数组文字
  • np.array('w_49c9417','w_b6ae946','w_1596a47','w_b68d04')不是因为它有四个论点。您无法从数组文字中删除括号。

这可以在SciPy tutorial中记录。

但是,您可以获取该数组的str表示,并删除最外面的括号。只需使用str(arr).lstrip('[').rstrip(']')

arr = np.array(['w_49c9417','w_b6ae946','w_1596a47','w_b68d04'])
print(arr)
print(str(arr))
print(str(arr).lstrip('[').rstrip(']'))

输出将是(#之后的注释除外)

['w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04'] # arr
['w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04'] # str(arr)
'w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04'   # using lstrip.rightstrip, expected result
© www.soinside.com 2019 - 2024. All rights reserved.