numpy отличает 1d "векторы" от 2d "векторов строк" и "векторов столбцов". для переключения между ними обычно используется что-то вроде:
# create 1d vector
v = np.array([1, 1, 0, 0])
# row vector
rv = v[np.newaxis, :]
# column vector
cv = v[:, np.newaxis]
обратите внимание, что np.newaxis
определено как None
, поэтому вы часто будете видеть это в виде, например, v[:,None]
и поскольку необходимость в векторе-столбце является такой распространенной операцией, существуют неясные сокращения, такие как np.c_[v]
, теперь, когда rv
и cv
равны 2d, они могут быть транспонированный , как вы ожидали,
переключение обратно на 1d вектор аналогично:
# from row vector
v = rv[0, :]
# from column vector
v = cv[:, 0]