I had a code challenge for a class I'm taking that built a NN algorithm. I got it to work but I used really basic methods for solving it. There are two 1D NP Arrays that have values 0-2 in them, both equal length. They represent two different trains and test data The output is a confusion matrix that shows which received the right predictions and which received the wrong (doesn't matter ;).
This code is correct - I just feel I took the lazy way out working with lists and then turning those lists into a ndarray. I would love to see if people have some tips on maybe utilizing Numpy for this? Anything Clever?
import numpy as np x = [0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 2, 0, 0, 0, 0, 0, 1, 0] y = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] testy = np.array(x) testy_fit = np.array(y) row_no = [0,0,0] row_dh = [0,0,0] row_sl = [0,0,0] # Code for the first row - NO for i in range(len(testy)): if testy.item(i) == 0 and testy_fit.item(i) == 0: row_no[0] += 1 elif testy.item(i) == 0 and testy_fit.item(i) == 1: row_no[1] += 1 elif testy.item(i) == 0 and testy_fit.item(i) == 2: row_no[2] += 1 # Code for the second row - DH for i in range(len(testy)): if testy.item(i) == 1 and testy_fit.item(i) == 0: row_dh[0] += 1 elif testy.item(i) == 1 and testy_fit.item(i) == 1: row_dh[1] += 1 elif testy.item(i) == 1 and testy_fit.item(i) == 2: row_dh[2] += 1 # Code for the third row - SL for i in range(len(testy)): if testy.item(i) == 2 and testy_fit.item(i) == 0: row_sl[0] += 1 elif testy.item(i) == 2 and testy_fit.item(i) == 1: row_sl[1] += 1 elif testy.item(i) == 2 and testy_fit.item(i) == 2: row_sl[2] += 1 confusion = np.array([row_no,row_dh,row_sl]) print(confusion)
the result of the print is correct as follow:
[[16 10 0] [ 2 10 0] [ 2 0 22]]
numpy
are routine on SO.\$\endgroup\$