Python 3.7
我有一个matlab / octave .dat文件,该文件具有以下结构(35,45,48)= 75600点,因为我不知道如何在python中处理该格式,因此我决定将数据导入为。八度音阶中的txt文件,然后从那里进行操作。
数据集中的以下几点如下:
(-14.46997737884521, 4.298966407775879)
这个八度的.txt文件为我提供了(75600 x 1)的数组,所以这是我的方法:
我不确定我正在进行的重塑是否可以为我提供所需的正确数组,该数组应该与在matlab / octave中完全相同。
代码:
import numpy as np
file = 'data1.txt'
myarray = []
my_tuple_list = []
with open(file) as f:
content = f.readlines()
def createGenerator():
for i in range(5,len(content)-2):
yield content[i]
my_generator = createGenerator()
for a in my_generator:
first_part, second_part = a.split(",")
num_first_part = first_part.replace("(",'')
num_second_part = second_part.replace(")",'')
newtuple = (float(num_first_part),float(num_second_part))
my_tuple_list.append(newtuple)
arr = np.empty(len(my_tuple_list), dtype='O')
arr[:] = my_tuple_list
new_array = arr.reshape((45,35,48))
结果应该是(45,35,48)的数组,并且数组内的元素是元组。