将numpy数组中的元素转换为字符串

Hei*_*inz 6 arrays string numpy

我编写了以下脚本,以numpy数组形式从CSV文件加载数据:

import numpy

sample = numpy.genfromtxt('sample_cor.csv', delimiter = ',')
print sample
Run Code Online (Sandbox Code Playgroud)

这个样本看起来像:

[[  259463.392   2737830.062 ]
 [  255791.4823  2742050.772 ]
 [  249552.4949  2746152.328 ]
 [  247925.1228  2746422.143 ]
 [  262030.4697  2728966.229 ]
 [  260462.1936  2731412.856 ]
 [  260644.0281  2735003.027 ]
 [  268588.7974  2732835.097 ]]
Run Code Online (Sandbox Code Playgroud)

现在我想将这个数组中的每一行提取为逗号字符串,例如,我希望第1行转换为259463.392,2737830.062第2行255791.4823,2742050.772,依此类推.

我试过下面的代码:

ss = numpy.array_str(sample[0])
print ss
print type(ss)
Run Code Online (Sandbox Code Playgroud)

得到的结果可能不是我想要的,

[  259463.392  2737830.062]
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

(我用的coords = '259467.2,2737833.87',并得到这是我想要的字符串形式: 259467.2,2737833.87)

如何将numpy数组中的元素转换为带逗号的字符串?

Div*_*kar 8

这是一种使用方法join method-

[",".join(item) for item in a.astype(str)]
Run Code Online (Sandbox Code Playgroud)

样品运行 -

In [141]: a
Out[141]: 
array([[  259463.392 ,  2737830.062 ],
       [  255791.4823,  2742050.772 ],
       [  249552.4949,  2746152.328 ],
       [  247925.1228,  2746422.143 ],
       [  262030.4697,  2728966.229 ],
       [  260462.1936,  2731412.856 ],
       [  260644.0281,  2735003.027 ],
       [  268588.7974,  2732835.097 ]])

In [142]: [",".join(item) for item in a.astype(str)]
Out[142]: 
['259463.392,2737830.062',
 '255791.4823,2742050.772',
 '249552.4949,2746152.328',
 '247925.1228,2746422.143',
 '262030.4697,2728966.229',
 '260462.1936,2731412.856',
 '260644.0281,2735003.027',
 '268588.7974,2732835.097']
Run Code Online (Sandbox Code Playgroud)