If I understand correctly, you want to perform matrix multiplication between a transpose and c. You was on the right track when trying to change the dimensions of c, however we also need a to be bidimensional. To do this, you should use np.matmul, and have both a and c be 2D arrays.
Hence your code translates to:
import numpy as np
a = np.array([np.linspace(-2.5, 2.5, 6, endpoint=True)])
c = np.array([[2, 1]])
print(np.matmul(a.T, c)
which gives again:
[[-5. -2.5]
[-3. -1.5]
[-1. -0.5]
[ 1. 0.5]
[ 3. 1.5]
[ 5. 2.5]]
Can it be produced directly with from a and c?
However I don't know if this answer counts as a 'yes' or a 'no', since you are actually creating a third array, but simply not declaring an explicit reference to it.