在循环中堆叠/连接非等长数组

时间:2018-08-04 18:15:53

标签: python arrays python-3.x

之前,我已经创建了一个matlab脚本来加载(制表符分隔)txt文件(并在其后进行绘制)。这些文件的大小(3 * x)/长度不相等。基本上,脚本是这样的...

<p style="margin:0pt; line-height:115%; font-size:11pt">

Matlab不在乎长度,并添加零或无。
现在我想用python做同样的事情。这是我当前的python脚本:

<p style="margin:0pt; line-height:115%; font-size:11pt">TEXT VERY IMPORTANT 1 <p style="margin:0pt; line-height:115%; font-size:11pt">TEXT VERY IMPORTANT 2 <p style="margin:0pt; line-height:115%; font-size:11pt">TEXT VERY IMPORTANT 3

,但是由于文件的长度不相等。
使用vstack或串联时,我都得到了以下错误:

  

ValueError:所有输入数组的维数必须相同

如何添加长度不等的数组。在空白位置添加for i=1:7 filename = ['filename' num2str(i) '.txt']; % @ filename invullen a{i} = dlmread(filename, '\t'); % import some data b = a{1,i}(:,1); c = a{1,i}(:,2); d = a{1,i}(:,3); end 值是可以的。我无法更改数组长度的顺序(=文件的顺序)。最长的文件可能不是第一个文件...所以在串联/堆叠文件之前如何匹配长度(新数组或现有数组)。

数据示例:

data = b = c = d = []
for file in range(7):
    filename = 'filename'+ str(file+1) + '.txt'  # @ filename invullen
    data.append(np.loadtxt(filename, dtype=None, delimiter='\t'))  # import some data
    b = np.concatenate((b, data[file][:,0]))
    c = np.concatenate((c, data[file][:,1]))
    d = np.concatenate((d, data[file][:,2]))

0 个答案:

没有答案