数组的默认显示是每个元素的统一字段宽度,而不是统一的间距:In [30]: x=np.array([11,223,3])
In [31]: x
Out[31]: array([ 11, 223, 3])
In [32]: x.tolist() # list display with uniform spacing
Out[32]: [11, 223, 3]
实际上,numpy使用的格式如下:
^{pr2}$
np.savetxt就是这样,使用您提供的fmt和{}。在
csv代表“逗号分隔”。也可以使用制表符。如果使用“空白”,好的读者也会喜欢一个、两个或更多的“空白”。这样的表通常被格式化以保持列对齐,而不是保持数字之间的间距不变。在
具有混合数字大小的3行数组:In [39]: x=np.array([[1,123,32],[34,1,2],[0,23,1000]])
In [40]: x
Out[40]:
array([[ 1, 123, 32],
[ 34, 1, 2],
[ 0, 23, 1000]])
固定宽度csv格式:In [41]: np.savetxt('test.csv',x,fmt='%5d', delimiter=',')
In [42]: cat test.csv
1, 123, 32
34, 1, 2
0, 23, 1000
分隔阅读:In [43]: np.genfromtxt('test.csv',delimiter=',',dtype=None)
Out[43]:
array([[ 1, 123, 32],
[ 34, 1, 2],
[ 0, 23, 1000]])
Python字符串分割的默认模式使用通用空白:In [44]: ' 11 223 3'.split()
Out[44]: ['11', '223', '3']
下面是一个具有恒定间距(和可变宽度)的csv示例In [45]: np.savetxt('test.csv',x,fmt='%d', delimiter=' ')
In [46]: cat test.csv
1 123 32
34 1 2
0 23 1000
np.genfromtxt('test.csv',dtype=None)读起来很好。在