从numpy数组

时间:2018-05-31 17:19:51

标签: python arrays numpy

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

['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'

任何建议都会有所帮助! 提前谢谢。

1 个答案:

答案 0 :(得分: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