2014-11-25 56 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

相關問題