Numpy:这是将一列 1 添加到 1D 向量的最有效方法吗?
Numpy: Is this the most efficient way to add a column of ones to a 1D vector?
在我的 Python 脚本中,我从 .dat
文件加载一维矢量。我想将该向量用作矩阵中的第一列,其中第二列用 1 填充。我是这样做的:
x = np.loadtxt( 'x.dat' )
m = x.shape[0]
X = np.concatenate((x.reshape((m,1)), np.ones((m,1))), axis=1)
有没有更有效的方法来实现这个?
我觉得很合理。如果您真的很追求性能,您可以尝试以下方法:
X = np.ones((m, 2))
X[:,0] = x
或:
X = np.empty((m, 2))
X[:,0] = x
X[:,1] = 1
不过,如果它们更慢,我也不会感到惊讶。
但是,我希望您的大部分性能不会因添加额外的列而丢失,而是在 np.loadtxt
上丢失。考虑将您的数据格式更改为 np.save
/np.load
,这样会更快。
在我的 Python 脚本中,我从 .dat
文件加载一维矢量。我想将该向量用作矩阵中的第一列,其中第二列用 1 填充。我是这样做的:
x = np.loadtxt( 'x.dat' )
m = x.shape[0]
X = np.concatenate((x.reshape((m,1)), np.ones((m,1))), axis=1)
有没有更有效的方法来实现这个?
我觉得很合理。如果您真的很追求性能,您可以尝试以下方法:
X = np.ones((m, 2))
X[:,0] = x
或:
X = np.empty((m, 2))
X[:,0] = x
X[:,1] = 1
不过,如果它们更慢,我也不会感到惊讶。
但是,我希望您的大部分性能不会因添加额外的列而丢失,而是在 np.loadtxt
上丢失。考虑将您的数据格式更改为 np.save
/np.load
,这样会更快。