python - 将向量组合为 numpy 中的列矩阵

标签 python numpy matrix

我有 3 个向量,如下所示:

a = np.ones(20)
b = np.zeros(20)
c = np.ones(20)

我试图将它们组合成一个 20x3 维的矩阵。

目前我在做:

n1 = np.vstack((a,b))
n2 = np.vstack((n1,c)).T

这行得通,但是有没有一种方法可以按列方式用数组填充矩阵?

最佳答案

有几种不同的方法可以做到这一点。以下是一些示例:

使用 np.c_ :

np.c_[a, b, c]

使用 np.dstacknp.squeeze :

np.dstack((a, b, c)).squeeze()

使用 np.vstack并转置(类似于您的方法):

np.vstack((a,b,c)).T

使用 np.concatenatereshape :

np.concatenate((a, b, c)).reshape((-1, 3), order='F')

如果这里效率很重要,那么使用 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

关于python - 将向量组合为 numpy 中的列矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27513246/

相关文章:

python - 从单个数据框创建多个子集,无需替换

python - tensorflow :检查标量 bool 张量是否为真

python - 将 Django 连接到实时 Heroku Postgres 数据库

python - 使用 pandas 组内的多个条件检查值是否存在

python - 如何将列表转换为 numpy 数组

python - 如何合并列表和 csr 矩阵

c++ - 将 cv::Mat A 的每个成员与 cv::Mat B 合并,以创建一个带有 [a(x,y),b(x,y)] 的 cv::Mat C

python - scikit-learn 中的 n_jobs 并行化pairwise_distances

python - Numpy 1-dim 数组与 2-dim 数组,其中一个维度的长度为 1

r - 将矩阵拆分为 4 个子矩阵,它们的总和之间的差值最小