Numpy 等级 1 数组

Numpy rank 1 arrays

我是 Matlab/Octave 用户。 Numpy 文档说 arraymatrix 更可取。有没有一种方便的方法来处理 rank-1 数组,而不需要不断地重塑它?

示例:

data = np.loadtxt("ex1data1.txt", usecols=(0,1), delimiter=',',dtype=None)
X = data[:, 0]
y = data[:, 1]
m = len(y)

print X.shape, y.shape
>>> (97L, ) (97L, )

我无法使用 concatenatevstackappend 将新列添加到 X,但 np.c_ 除外,后者速度较慢,且不重塑 X:

X = np.concatenate((np.ones((m, 1)), X), axis = 1)
>>> ValueError: all the input arrays must have same number of dimensions

X - y,不重塑 y 就无法完成 np.reshape(y, (-1, 1))

np.reshape(y, (-1, 1)) 的一个更简单的等效项是 y[:, np.newaxis]。由于 np.newaxisNone 的别名,因此 y[:, None] 也有效。还值得一提的是 np.expand_dims(y, axis=1).