Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to slice a list into 3 parts based on percentage?

Tags:

python

I have a files list and I want to split it into 3 parts : training, validation and testing. I have tries this code and I don't know if it is correct or not.

files = glob.glob("/dataset/%s/*" % emotion)
training = files[:int(len(files)*0.8)] #get first 80% of file list
validation = files[-int(len(files)*0.1):] #get middle 10% of file list
testing = files[-int(len(files)*0.1):] #get last 10% of file list

I am not sure if the testing list is duplicated or it the correct last 10% of the file list.

like image 975
Oussama Avatar asked Nov 30 '22 08:11

Oussama


1 Answers

You can take advantage of numpy split:

train, validate, test = np.split(files, [int(len(files)*0.8), int(len(files)*0.9)])
like image 183
zipa Avatar answered Dec 01 '22 22:12

zipa