2014-11-25 60 views
0

我需要将stdin作为浮点列表传递给进程,并且这是通过Python完成的。获得numpy数组的换行分隔字符串表示的最简洁方法是什么?

arr = np.array(range(1,11)) 
# TODO: how to convert from arr to '1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n' 
proc = subprocess.Popen(["./myproc"],stdin=StringIO('1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n'),stdout=subprocess.PIPE) 

什么是转换从最简单的方法:

array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 

'1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n' 

回答

2
a = np.array(range(1,11)) 
print "\n".join(str(n) for n in a) 

print "\n".join(map(str,a)) 

注释:

  1. 在Python中,join方法定义的字符串,并采取包含字符串
  2. "\n".join(a)可迭代给出了一个类型错误,因为包含INT不串
  3. 你可以简单地print astr(a)但格式将不包括换行符
+1

'(“”.join([str(f)+“\ n”for a]])'在最后一个数字之后也得到换行符 – 2014-11-25 11:30:46

相关问题