Python 可变维数组
我正在尝试将一些数据保存到python中。数据由一系列以文本分隔的文件组成。问题是这些文件有不同的len(),我在读取之前不知道len()。 我想知道是否可以用如下方式将文件保存在2D数组中:Python 可变维数组,python,arrays,numpy,multidimensional-array,signal-processing,Python,Arrays,Numpy,Multidimensional Array,Signal Processing,我正在尝试将一些数据保存到python中。数据由一系列以文本分隔的文件组成。问题是这些文件有不同的len(),我在读取之前不知道len()。 我想知道是否可以用如下方式将文件保存在2D数组中: s1 s2 s3 s4 s5 .. s1 s2 s3 s4 s5 .. .. s2 s3 .. s5 .. .. .. s3 s5 .. s5 .. 在这种情况下,如果我想访问信号1中的所有值,我将做如下操作: s[:,0] 我也在考虑在for循环中实现这一点。 read_
s1 s2 s3 s4 s5 ..
s1 s2 s3 s4 s5 ..
.. s2 s3 .. s5 ..
.. .. s3 s5 ..
s5 ..
在这种情况下,如果我想访问信号1中的所有值,我将做如下操作:
s[:,0]
我也在考虑在for循环中实现这一点。
read_data是一个函数,它返回包含已处理文件的数组和包含所有文件路径的文件列表
for i in range(len(files)):
all_files[:,i] = read_data(files[i])
但是,由于我没有在之前启动所有的_文件,因此这将不起作用。同时,如果我想在读取之前启动所有的_文件,我将很难知道我将使用什么“垂直”维度,因为“水平”应该更容易:len(文件) 这可能是一种粗糙的方法,但您可以最大限度地利用 使用以下代码段的所有文件的长度。您可以将其用于垂直尺寸的大小
max_len = 0
for i in len(files):
if len(files[i]) > max_len:
max_len = len(files[i])
我会将文件数据收集到一个列表中,一个列表列表,然后担心以后会将其重新打包为数组。附加到列表中是很便宜的 e、 g 现在,您可以获得诸如文件数、
N=len(所有\u文件)
和最大长度、M=max(len(f)表示所有\u文件中的f)
等信息
其中,pad_函数
将一个文件中的数据填充到最大大小
另一种方法是找出要将数据放在所有_数据中的位置,并创建一个索引向量j=[0,1,3,5,…]
:
all_data[i,j] = all_files[i]
或者max\u len=max(len(f)表示文件中的f)
all_data = np.zeros((N,M)), dtype=???)
for i in range(N):
all_data[i,:] = pad_function(all_files[i])
all_data[i,j] = all_files[i]