Because B = B[:, None] changes the array to 2d:
A = np.array([0, 1])
B = np.array([0, 1])
C = B[:, None]
print(B, C, sep='\n')
Output:
[0 1]
[[0]
[1]]
They become different.
Also:
>>> A[:, None]
array([[0],
[1]])
>>> A[None, :]
array([[0, 1]])
>>>
Aren't the same.
[:, None] makes it into a shape of (2, 1), where [None, :] makes it into (1, 2).
That's the difference, one transposes columns-wise, and one transposes row-wise.
Also for checking equality it becomes checking from A[:, None], with:
array([[0, 0],
[1, 1]])
And for A[None, :] it checks for:
array([[0, 1],
[0, 1]])
So the first list row would be [True, False], because 0 == 0 but 0 != 1. And for the second row it would be [False, True], because 1 != 0 but 1 == 1.