Ошибка при работе с массивами python
При попытке загрузки данных возникает ошибка: ValueError: could not broadcast input array from shape (2,) into shape (1,) Сама функция загрузки:
class data_loader():
def __init__(self, frame_len, feature_name, N_classes):
self.feature_names = feature_name
self.N_Feature = 1
self.frame_length = frame_len
self.hop_size = frame_len//2
self.N_classes = 1
self.batch_size = 128
self.label_encoder = OneHotEncoder(sparse=False)
self.add_cols = False # Flag
self.result_list = [] # List with pandas cols
self.adding_lis = [] # List with pandas cols with added to result_list
self.noise_flag = True # Flag
self.dsnr = 25 # SNR in dB between noise and data
self.chop_flag = False # Flag
self.chop_rate = 0.02
def load_data(self, files, label):
# load data
for i in range(len(files)):
# read file
tmp_data = pd.read_csv(files[i])
# add cols if add_cols=True
if self.add_cols:
tmp_data = self.add_columns(tmp_data, self.result_list, self.adding_list)
# calculate number of frames
N_Blocks = 1 + (np.shape(tmp_data)[0]-self.frame_length)//self.hop_size
# temporary data storage
tmp_feature_mat = np.zeros((N_Blocks, self.frame_length, self.N_Feature))# dim [NBlocks, frame length, N feature]
# temporay label storage
tmp_label_vec = np.zeros((N_Blocks, self.N_classes)) # dim [N Blocks, N Classes]
for j in range(N_Blocks):
tmp_label_vec[j, :] = label[i, :] # dim [N Blocks, N Classes]
# loop over feature
for idf, feat in enumerate(self.feature_names):
# create frame matrix out of time series
frame_matrix = self.framing(tmp_data[feat].to_numpy()) # dim [NBlocks, frame length]
#frame_matrix = self.z_score_normalization(frame_matrix)
tmp_feature_mat[:, :, idf] = frame_matrix # dim [NBlocks, frame length, Nfeature]
# create feature and lable matrix with all data
if i == 0:
feature_matrix = tmp_feature_mat # dim [NBlocks, frame length, Nfeature]
label_matrix = tmp_label_vec # dim [N Blocks, NClasses]
else:
feature_matrix = np.append(feature_matrix, tmp_feature_mat, axis=0) # dim [NBlocks, frame length, Nfeature]
label_matrix = np.append(label_matrix, tmp_label_vec, axis=0) # dim [NBlocks, NClasses]
return feature_matrix, label_matrix
А ошибка возникает при выполнении этой части:
files_train, files_valid, y_train, y_valid = train_test_split(files[5:], label_frame, test_size=0.2, random_state=0)
loader1 = data_loader(frame_length, Feature, N_classes)
loader1.load_trainings_data(files_train, y_train)
loader1.load_validation_data(files_valid, y_valid)
loader1.batch_size = batch_size
loader2 = data_loader(frame_length, ['gravity.x'], N_classes)
loader2.add_cols = True
loader2.result_list = ['gravity.x']
loader2.adding_list = ['gravity.x']
loader2.load_trainings_data(files_train, y_train)
loader2.load_validation_data(files_valid, y_valid)
loader2.batch_size = batch_size
