Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 23131

setting an array element with a sequence requested array has an inhomogeneous shape after 1 dimensions The detected shape was (2,)+inhomogeneous part

$
0
0
import osimport numpy as npfrom scipy.signal import *import csvimport matplotlib.pyplot as pltfrom scipy import signalfrom brainflow.board_shim import BoardShim, BrainFlowInputParams, LogLevels, BoardIdsfrom brainflow.data_filter import DataFilter, FilterTypes, AggOperations, WindowFunctions, DetrendOperationsfrom sklearn.cluster import KMeans#Options to read: 'EEG-IO', 'EEG-VV', 'EEG-VR', 'EEG-MB'data_folder = 'EEG-IO'# Parameters and bandpass filteringfs = 250.0# Reading data filesfile_idx = 0list_of_files = [f for f in os.listdir(data_folder) if os.path.isfile(os.path.join(data_folder, f)) and '_data' in f] #List of all the files, Lists are randomized, its only looking for file with _data in itprint(list_of_files)file_sig = list_of_files[file_idx] # Data Filefile_stim = list_of_files[file_idx].replace('_data','_labels') #Label File, Replacing _data with _labelsprint ("Reading: ", file_sig, file_stim)# Loading dataif data_folder == 'EEG-IO' or data_folder == 'EEG-MB':    data_sig = np.loadtxt(open(os.path.join(data_folder,file_sig), "rb"), delimiter=";", skiprows=1, usecols=(0,1,2)) #data_sig would be a bufferelif data_folder == 'EEG-VR' or data_folder == 'EEG-VV':    data_sig = np.loadtxt(open(os.path.join(data_folder,file_sig), "rb"), delimiter=",", skiprows=5, usecols=(0,1,2))     data_sig = data_sig[0:(int(200*fs)+1),:] # getting data ready -- not needed for previous 2 datasets    data_sig = data_sig[:,0:3] #    data_sig[:,0] = np.array(range(0,len(data_sig)))/fs############ Calculating PSD ############index, ch = data_sig.shape[0], data_sig.shape[1]# print(index)feature_vectors = [[], []]feature_vectorsa = [[], []]feature_vectorsb = [[], []]feature_vectorsc = [[], []]#for x in range(ch):#for x in range(1,3):#while x < #while x>0:x=1while x>0 and x<3:    if x==1:        data_sig[:,1] = lowpass(data_sig[:,1], 10, fs, 4)    elif x==2:        data_sig[:,2] = lowpass(data_sig[:,2], 10, fs, 4)    for y in range(500, 19328 ,500):        #print(ch)        if x==1:            DataFilter.detrend(data_sig[y-500:y, 1], DetrendOperations.LINEAR.value)            psd = DataFilter.get_psd_welch(data_sig[y-500:y, 1], nfft, nfft//2, 250,                                       WindowFunctions.BLACKMAN_HARRIS.value)            band_power_delta = DataFilter.get_band_power(psd, 1.0, 4.0)            # Theta 4-8            band_power_theta = DataFilter.get_band_power(psd, 4.0, 8.0)            #Alpha 8-12            band_power_alpha = DataFilter.get_band_power(psd, 8.0, 12.0)            #Beta 12-30            band_power_beta = DataFilter.get_band_power(psd, 12.0, 30.0)            # print(feature_vectors.shape)            feature_vectors[x].insert(y, [band_power_delta, band_power_theta, band_power_alpha, band_power_beta])            feature_vectorsa[x].insert(y, [band_power_delta, band_power_theta])        elif x==2:            DataFilter.detrend(data_sig[y-500:y, 2], DetrendOperations.LINEAR.value)            psd = DataFilter.get_psd_welch(data_sig[y-500:y, 2], nfft, nfft//2, 250,                                       WindowFunctions.BLACKMAN_HARRIS.value)            band_power_delta = DataFilter.get_band_power(psd, 1.0, 4.0)            # Theta 4-8            band_power_theta = DataFilter.get_band_power(psd, 4.0, 8.0)            #Alpha 8-12            band_power_alpha = DataFilter.get_band_power(psd, 8.0, 12.0)            #Beta 12-30            band_power_beta = DataFilter.get_band_power(psd, 12.0, 30.0)            # print(feature_vectors.shape)            # feature_vectorsc[x].insert(y, [band_power_delta, band_power_theta, band_power_alpha, band_power_beta])            # feature_vectorsd[x].insert(y, [band_power_delta, band_power_theta])    x = x+1print(feature_vectorsa)powers = np.log10(np.asarray(feature_vectors, dtype=float))powers1 = np.log10(np.asarray(feature_vectorsa, dtype=float))# powers2 = np.log10(np.asarray(feature_vectorsb))# powers3 = np.log10(np.asarray(feature_vectorsc))print(powers.shape)print(powers1.shape)

Super confused. When I run my code, I keep on getting this error:

ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.

Traceback:

File "/Users/mikaelhaji/Downloads/EEG-EyeBlinks/read_data.py", line 170, in powers = np.log10(np.asarray(feature_vectors, dtype=float))File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/numpy/core/_asarray.py", line 102, in asarrayreturn array(a, dtype, copy=False, order=order)ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.

If you have any thoughts/ answers as to why this may be occurring, please let me know.

Thanks in advance for the responses.


Viewing all articles
Browse latest Browse all 23131

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>