【问题标题】:add a comma between the elements of a numpy array在 numpy 数组的元素之间添加逗号
【发布时间】:2018-01-12 10:23:21
【问题描述】:

我有一个看起来像的 numpy 数组

a = ['blue' 'red' 'green']

我希望它成为

b = ['blue', 'red', 'green']

我试过了

b = a.split(' ')

但它返回一个错误:'numpy.ndarray' object has no attribute 'split'

【问题讨论】:

标签: python numpy


【解决方案1】:

只需将其转换为列表:

a = numpy.array(['blue', 'red', 'green'])
print a
>> ['blue' 'red' 'green']
b = list(a)
print b
>> ['blue', 'red', 'green']

但是为什么你会有一个带有字符串的 numpy 数组呢?

【讨论】:

  • 记录数组、recarrays、结构化数组......是 numpy 数组的一种非常常见的用法。 Numpy 不将其 dtype 限制为一种常见类型。 Numpy 和 SciPy 文档网站中有大量文档。唯一的要求是每个列/字段都由一个 dtype 表征
【解决方案2】:

您可以简单地调用 tolist:

import numpy as np

a = np.array(['blue', 'red', 'green'])

b = a.tolist()
print(b)
['blue', 'red', 'green']

【讨论】:

    【解决方案3】:

    我在没有逗号和任意数量的空格的列表中遇到了类似的问题。例如。:

    [2650   20    5]
    [2670    5]
    [1357  963  355]
    

    我是这样解决的:

    np.array(re.split("s+", my_list.replace('[','').replace(']','')), dtype=int)
    

    从控制台:

    >>> import numpy as np
    >>> import re
    >>> my_list = '[2650   20    5]'
    >>> result = np.array(re.split("s+", my_list.replace('[','').replace(']','')), dtype=int)
    >>> result
    array([2650,   20,    5])
    >>> 
    

    【讨论】: