Numpy连接整数字符串

时间:2014-09-20 14:27:41

标签: python numpy

我有一个相当大的M * N整数的numpy数组,我想最终得到一个M数组的字符串,其中所有N个对应的整数连接起来。 我尝试使用视图,但这可能不是numpy的方法。

3 个答案:

答案 0 :(得分:1)

希望这是你想要的

numpy.apply_along_axis(numpy.array_str,0,array)

查看apply_along_axis

的文档

http://docs.scipy.org/doc/numpy/reference/generated/numpy.apply_along_axis.html

和array_str

http://docs.scipy.org/doc/numpy/reference/generated/numpy.array_str.html

更深入的了解

答案 1 :(得分:1)

如果您想将ints连接到string,那么numpy数组就不会更长!你将有一个包含字符串索引的列表。

这是一个将'a'连接到numpy零数组的示例:

>>> np.zeros(10)
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

>>> [str(i)+'a' for i in np.zeros(10)]
['0.0a', '0.0a', '0.0a', '0.0a', '0.0a', '0.0a', '0.0a', '0.0a', '0.0a', '0.0a']
>>> 

答案 2 :(得分:1)

如果没有示例,您的请求就不清楚了。但这是理解它的一种方式

In [13]: X=np.arange(12).reshape(3,4)
In [14]: np.array([''.join([str(i) for i in x]) for x in X])
Out[14]: 
array(['0123', '4567', '891011'], 
    dtype='|S6')

我有一个3x4阵列;我使用str(i)将每个元素转换为字符串,并使用join将一行的字符串连接成一个更长的字符串。

这不是一个非常令人满意的答案,尤其是在加入'9'到'10'时。当然可以通过详细说明'int'到'string'格式(即固定宽度)来改进,也可以在'join'中添加分隔符等。

In [21]: np.array([','.join(['{:*^8}'.format(i) for i in x]) for x in X])
Out[21]: 
array(['***0****,***1****,***2****,***3****',
       '***4****,***5****,***6****,***7****',
       '***8****,***9****,***10***,***11***'], 
      dtype='|S35')

view只有在您想要的是某种字符串到字节表示或str到char时才有效。