python - 如何使用 nptile reshape 数组

标签 python numpy

我有一个形状为 2、5 的数组 X,如下所示:

0, 6, 7, 9, 1
2, 4, 6, 2, 7

我想将其 reshape 为将每行重复 n 次,如下所示(示例使用 n = 3):

0, 6, 7, 9, 1
0, 6, 7, 9, 1
0, 6, 7, 9, 1
2, 4, 6, 2, 7
2, 4, 6, 2, 7
2, 4, 6, 2, 7

我尝试按如下方式使用 np.tile,但它重复如下所示:

np.tile(X, (3, 5))
0, 6, 7, 9, 1
2, 4, 6, 2, 7
0, 6, 7, 9, 1
2, 4, 6, 2, 7
0, 6, 7, 9, 1
2, 4, 6, 2, 7

我如何有效地创建所需的输出?

最佳答案

如果a是主数组:

a = np.array([0, 6, 7, 9, 1, 2, 4, 6, 2, 7])

我们可以通过首先 reshape 为所需的数组形状,然后使用 np.repeat 来实现此目的:

b = a.reshape(2, 5)
final = np.repeat(b, 3, axis=0)

也可以用np.tile来完成,但它需要不必要的额外操作,如下所示。因此,np.repeat 将是更好的选择。

test = np.tile(b, (3, 1))
final = np.concatenate((test[::2], test[1::2]))

关于python - 如何使用 nptile reshape 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71637473/

相关文章:

python - 如何在一个脚本中写两个 on script 定时器?

python - 在 Python 中通过三元运算符传递函数参数

python - NumPy 的 : how to fill an array smartly?

python - 如何将没有换行符的大(3-4GB)文件读入 numpy 数组?

python - 通过降低 worker 中的内存使用量使用 Pool 进行多处理

python - 在Python中检查二维数组中的所有元素是否都等于1

python - 用 Python 和 Numpy 计算协方差

python - 提取 csv 文件特定列以在 Python 中列出

python - 在没有循环的 3D 数组中沿第三轴计算 2D 数组的逆

python - bool 矩阵计算的最快方法