我有一个相当大的M * N整数的numpy数组,我想最终得到一个M数组的字符串,其中所有N个对应的整数连接起来。 我尝试使用视图,但这可能不是numpy的方法。
答案 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时才有效。