Rya*_*an -2 python arrays numpy
我有一个数组,它的字符串表示像这样打印
['w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04']
Run Code Online (Sandbox Code Playgroud)
这是一个 numpy 数组,有什么办法可以删除这些括号,我试过了,'.'join(thearray)但我得到:
Type Error: sequence item 0: expected instance, Numpy.ndarray found
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望这是要打印的字符串表示,例如:
'w_49c9417' 'w_b6ae946' 'w_1596a47' 'w_b68d04'
Run Code Online (Sandbox Code Playgroud)
任何的意见都将会有帮助!提前致谢。
对于您的 Numpy 数组,它包含str对象,而不是数字对象,因此ndarray无法工作。此外,数组文字(括号内的文本)必须用括号括起来,否则它会算作多个参数。
np.array(['w_49c9417','w_b6ae946','w_1596a47','w_b68d04']) 有效,因为参数是单个数组文字np.array('w_49c9417','w_b6ae946','w_1596a47','w_b68d04')不是因为它有四个参数。您不能从数组文字中删除括号。这可以在SciPy 教程中记录。
但是,您可以获得该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(']'))
Run Code Online (Sandbox Code Playgroud)
输出将是(# 后的注释除外)
['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
Run Code Online (Sandbox Code Playgroud)