{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import numpy as np\nimport multiprocessing as mp\nfrom PIL import Image\nimport pandas as pd\nfrom tqdm.auto import tqdm","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df = pd.read_csv(\"../input/plant-pathology-2021-fgvc8/train.csv\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"means = list()\nstds = list()\n\ndef worker(args):\n    index, row = args\n    img = (np.array(Image.open(\"../input/plant-pathology-2021-fgvc8/train_images/\" + row.image)) / 255).reshape(-1, 3)\n    return img.mean(axis=0), img.std(axis=0)\n\nwith mp.Pool() as pool:\n    for m, s in tqdm(pool.imap_unordered(worker, df.iterrows()), total=len(df)):\n        means.append(m)\n        stds.append(s)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Mean average per color channel","metadata":{}},{"cell_type":"code","source":"np.vstack(means).mean(axis=0)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Mean standard-deviation","metadata":{}},{"cell_type":"code","source":"np.vstack(stds).mean(axis=0)","metadata":{},"execution_count":null,"outputs":[]}]}