我目前有一個列表,其中包含sklearn分類器的所有輸入。該列表中的每個元素都是一個功能列表,其中每個元素都代表我的數據集中的一首歌曲。如何將列表的Python列表轉換爲2D numpy數組sklearn.preprocessing
我需要將此結構轉換爲2D numpy數組,因此我可以通過sklearn的預處理來擴展我的數據。這證明是非常困難的。
y = [] all_feats = [] for song in data: mfccs_in_song = song[0] oned_mfccs_in_song = [] for frame in mfccs_in_song: for m in frame: oned_mfccs_in_song.append(m) all_feats.append(oned_mfccs_in_song) label = song[-1] y.append(label)
長話短說,all_feats是列出的該列表。它的長度爲600.我怎樣才能將它轉換爲一個numpy數組進行預處理?我嘗試了很多東西,包括簡單的all_feats = np.array(all_feats)
,但是這不起作用。
使用'all_feats = np.array(all_feats)'是什麼問題?它會給出錯誤嗎?什麼錯誤? – Antimony
文件「/Library/Python/2.7/site-packages/sklearn/preprocessing/data.py」,第129行,比例尺 dtype = FLOAT_DTYPES) 文件「/Library/Python/2.7/site-packages/sklearn/utils /validation.py「,第382行,在check_array中 array = np.array(array,dtype = dtype,order = order,copy = copy) ValueError:使用序列設置數組元素。 – ohbrobig
看看給出的建議/答案[這裏](http://stackoverflow.com/questions/4674473/valueerror-setting-an-array-element-with-a-sequence)。更具體地說,看看最終的'all_feats'。它可能沒有相同大小的子列表。 – Antimony