The answer to your question is YES.
Given the example:
arr = [[x1, y1],
[x2, y2],
[x3, y3]]
arr = np.array(arr, dtype='f4')
mat = arr[:, np.newaxis, :]
The resulting mat will be 3 rows, 1 column and 2 channels interpreted by OpenCV. The official numpy doc: Shape Manipulation explains more details.