Moh*_*hit 1 python numpy matrix
我有 3 个向量,如下所示:
a = np.ones(20)
b = np.zeros(20)
c = np.ones(20)
Run Code Online (Sandbox Code Playgroud)
我试图将它们组合成一个尺寸为 20x3 的矩阵。
目前我正在做:
n1 = np.vstack((a,b))
n2 = np.vstack((n1,c)).T
Run Code Online (Sandbox Code Playgroud)
这有效,但没有办法以列方式用数组填充矩阵吗?
有几种不同的方法可以做到这一点。下面是一些例子:
使用np.c_:
np.c_[a, b, c]
Run Code Online (Sandbox Code Playgroud)
np.dstack((a, b, c)).squeeze()
Run Code Online (Sandbox Code Playgroud)
使用np.vstack和转置(类似于您的方法):
np.vstack((a,b,c)).T
Run Code Online (Sandbox Code Playgroud)
np.concatenate((a, b, c)).reshape((-1, 3), order='F')
Run Code Online (Sandbox Code Playgroud)
如果效率在这里很重要,那么使用的最后一种方法np.concatenate在我的计算机上似乎是迄今为止最快的:
>>> %timeit np.c_[a, b, c]
10000 loops, best of 3: 46.7 us per loop
>>> %timeit np.dstack((a, b, c)).squeeze()
100000 loops, best of 3: 18.2 us per loop
>>> %timeit np.vstack((a,b,c)).T
100000 loops, best of 3: 17.8 us per loop
>>> %timeit np.concatenate((a, b, c)).reshape((-1, 3), order='F')
100000 loops, best of 3: 3.41 us per loop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6081 次 |
| 最近记录: |