代码之家  ›  专栏  ›  技术社区  ›  Ryan

从numpy数组中移除括号

  •  -3
  • Ryan  · 技术社区  · 7 年前

    我有一个数组,它的字符串表示如下所示

    ['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 回复  |  直到 7 年前
        1
  •  3
  •   Ṃųỻịgǻňạcểơửṩ    7 年前

    对于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