我是 Matlab/Octave 用户。 Numpy 文档说 array
比 matrix
更可取。有没有一种方便的方法来处理 rank-1 数组,而不需要不断地 reshape 它?
例子:
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, )
我无法使用 concatenate
、vstack
、append
将新列添加到 X,np.c_
除外> 哪个更慢,没有 reshape X:
X = np.concatenate((np.ones((m, 1)), X), axis = 1)
>>> ValueError: all the input arrays must have same number of dimensions
X - y,如果不 reshape y 就无法完成 np.reshape(y, (-1, 1))
最佳答案
np.reshape(y, (-1, 1))
的一个更简单的等效项是 y[:, np.newaxis]
。由于 np.newaxis
是 None
的别名,因此 y[:, None]
也有效。还值得一提的是 np.expand_dims(y, axis=1)
。
关于python - Numpy 等级 1 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36545713/