【问题标题】:Replace character in numpy ndarray (Python)替换numpy ndarray中的字符(Python)
【发布时间】:2016-12-04 10:44:46
【问题描述】:

我有一个包含 6 个元素的 numpy ndarray

['\tblah blah' '"""123' 'blah' '"""' '\t456' '78\t9']

我正在尝试将所有制表符 \t 替换为每个 4 个空格,以便 numpy 数组现在为:

[' blah blah' '"""123' 'blah' '"""' ' 456' '78 9']

我已经考虑过 re.sub,但是当它归结为一个 numpy ndarray 时,我无法弄清楚如何实现它。有什么建议/帮助吗?

【问题讨论】:

    标签: python python-3.x numpy multidimensional-array


    【解决方案1】:

    您可以使用处理字符串相关操作的NumPy's core.defchararray,在这种情况下使用replace method,就像这样 -

    np.core.defchararray.replace(arr,'\t', '    ')
    

    示例运行 -

    In [44]: arr
    Out[44]: 
    array(['\tblah blah', '"""123', 'blah', '"""', '\t456', '78\t9'], 
          dtype='|S10')
    
    In [45]: np.core.defchararray.replace(arr,'\t', '    ')
    Out[45]: 
    array(['    blah blah', '"""123', 'blah', '"""', '    456', '78    9'], 
          dtype='|S13')
    

    【讨论】:

    • 快速跟进;是否可以获得替换的数量,即在这种情况下为 3?
    • @nk-fford 一种解决方案是:np.core.defchararray.not_equal(output, arr).sum()
    • 对这种情况下的outputarr 感到困惑?请给出一个单行词来解释这个计数是如何工作的?
    • @nk-fford output 会是np.core.defchararray.replace(arr,'\t', ' ') 的输出吗?基本上,我们正在计算replace 方法进行更改的发生次数。
    • 我明白了,我在一行中做所有事情并且感到困惑。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-07-29
    • 2011-05-02
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    相关资源
    最近更新 更多