Arrays np.array2string不删除数组周围的括号

Arrays np.array2string不删除数组周围的括号,arrays,string,pandas,numpy,glob,Arrays,String,Pandas,Numpy,Glob,我一直在尝试从excel文件中提取数据,将其转换为数组,然后将其写入其他当前未定义的文件类型(因此.txt文件是当前的占位符文件类型)。我确信代码相当难看,但它可以工作: import os import pandas as pd import glob import numpy as np def xlxtract(): for filename in glob.glob('*.xlsx'): ExcelFile = filename[:-5] RosewoodData =

我一直在尝试从excel文件中提取数据,将其转换为数组,然后将其写入其他当前未定义的文件类型(因此.txt文件是当前的占位符文件类型)。我确信代码相当难看,但它可以工作:

import os
import pandas as pd
import glob
import numpy as np

def xlxtract():
for filename in glob.glob('*.xlsx'):
    ExcelFile = filename[:-5]
    RosewoodData = pd.read_excel(ExcelFile + '.xlsx')
    DataMatrix = np.array(RosewoodData)
    DataMatrixString = np.array2string(DataMatrix, precision=4, separator=' ')
    NewFile = open(ExcelFile + 'MATRIX.txt', 'w')
    NewFile.write(' ' + DataMatrixString[1:-1])
    NewFile.close()
    print('Your file has been printed to ' + ExcelFile + '.txt')
无论如何,我遇到的问题是,虽然它打印到.txt文件中,但括号没有被删除。输出如下所示(随机数作为测试生成):


我想删除括号,但似乎没有任何一行方法可以做到这一点。如有任何帮助,将不胜感激。

array2string
将数组格式化以供显示,与执行
打印一样:

In [32]: x = np.arange(12).reshape(4,3)
In [33]: x
Out[33]: 
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
In [34]: np.array2string(x)
Out[34]: '[[ 0  1  2]\n [ 3  4  5]\n [ 6  7  8]\n [ 9 10 11]]'
请注意,列表的打印字符串还包括括号(和逗号):

array2string
的另一个复杂之处是它对长数组使用省略号缩写(尽管可以通过参数进行更改)

np.savetxt
是一种相对简单的二维数组写入文件的方法,可以通过显式格式进行模拟

In [37]: np.savetxt('test.txt', x, fmt='%d', delimiter=',')
In [38]: cat test.txt     # ipython system command to display a file
0,1,2
3,4,5
6,7,8
9,10,11
In [39]: for row in x:
    ...:     print('%d,%d,%d'%tuple(row))
    ...:     
0,1,2
3,4,5
6,7,8
9,10,11
或作为一个字符串

In [42]: astr = '\n'.join(['%3d %3d %3d'%tuple(row) for row in x])
In [43]: astr
Out[43]: '  0   1   2\n  3   4   5\n  6   7   8\n  9  10  11'

DataMatrixString[1:-1]应该去掉括号。
array2string
实际上只是为了向用户显示数组,而不是以任何特定的格式写出数组
np.savetxt
可能是您想要的。@bakka,这是我读到的内容,但文本文件仍然显示括号。它删除了数组的首括号和尾括号,但没有删除所述数组中各行的括号。@Eric,我快速查看了np.savetxt,它似乎只用于将文本保存到.txt文件中。虽然我可以处理这个问题,只需添加另一部分代码即可将.txt文件转换为我最终需要的文件类型,但最好有一个函数,该函数可以动态地显示它可以将数据保存为哪些文件类型。您可能会感兴趣的其他类型的文件?
In [37]: np.savetxt('test.txt', x, fmt='%d', delimiter=',')
In [38]: cat test.txt     # ipython system command to display a file
0,1,2
3,4,5
6,7,8
9,10,11
In [39]: for row in x:
    ...:     print('%d,%d,%d'%tuple(row))
    ...:     
0,1,2
3,4,5
6,7,8
9,10,11
In [42]: astr = '\n'.join(['%3d %3d %3d'%tuple(row) for row in x])
In [43]: astr
Out[43]: '  0   1   2\n  3   4   5\n  6   7   8\n  9  10  11'