Bij het uitvoeren van een onderzoek werd een $$M \times N$$ matrix $$\mathbf{X}$$ opgemaakt die verschillende
waarnemingen voorstelt. Elke rij van deze matrix $$\mathbf{X}$$ bevat een afzonderlijke uitvoering van eenzelfde
experiment waarbij elke kolom van de matrix een specifieke binaire (dus 1 of 0) observatiewaarde $$w_{ij}$$
voorstelt.
We wensen een $$M \times M$$ matrix $$\mathbf{D}$$ te bepalen waarbij het element $$D_{ij}$$ de Hamming-afstand tussen
de rijen $$i$$ en $$j$$ voorstelt in de matrix $$\mathbf{X}$$ (de diagonaal elementen zijn dus alvast 0). De Hamming-afstand
wordt hierbij gedefinieerd als het aantal posities waarin twee rijen een verschillende waarde hebben. Schrijf een functie
hamming()
die dit realiseert.
Een $$M \times N$$ NumPy-tabel gevuld met gehele getallen 1 of 0. Deze tabel stelt de matrix $$\mathbf{X}$$ voor.
Een $$M \times M$$ NumPy-tabel zoals hierboven gedefinieerd, deze tabel stelt de matrix $$\mathbf{D}$$ voor.
X = np.array([[1, 0, 0, 0], [1, 1, 1, 1], [0, 1, 0, 1], [1, 1, 1, 1], [0, 1, 0, 0], [1, 1, 0, 1], [1, 1, 1, 1], [1, 0, 0, 1]]) hamming(X) = [[0 3 3 3 2 2 3 1] [3 0 2 0 3 1 0 2] [3 2 0 2 1 1 2 2] [3 0 2 0 3 1 0 2] [2 3 1 3 0 2 3 3] [2 1 1 1 2 0 1 1] [3 0 2 0 3 1 0 2] [1 2 2 2 3 1 2 0]]