我有一个尺寸为(150,2)的矩阵,我想每行重复N次。我用一个例子来说明我的意思。
输入:
a = [[2, 3], [5, 6], [7, 9]]
假设N = 3,我需要此输出:
[[2 3]
[2 3]
[2 3]
[5 6]
[5 6]
[5 6]
[7 9]
[7 9]
[7 9]]
谢谢。
答案 0 :(得分:4)
将np.repeat
与参数axis=0
一起使用:
a = np.array([[2, 3],[5, 6],[7, 9]])
print(a)
[[2 3]
[5 6]
[7 9]]
r_a = np.repeat(a, repeats=3, axis=0)
print(r_a)
[[2 3]
[2 3]
[2 3]
[5 6]
[5 6]
[5 6]
[7 9]
[7 9]
[7 9]]
答案 1 :(得分:0)
要在NumPy中创建一个空的多维数组(例如,用于存储矩阵的2D数组m * n),以防万一您不知道要追加多少行并且不关心计算成本的问题,请参见Stephen Simmons提到(即在每次追加时重新构建数组),您可以将要追加到的维度压缩为0:X = np.empty(shape = [0,n])。
通过这种方式,您可以使用示例(此处m = 5,我们假设在创建空矩阵时我们不知道,而n = 2):
import numpy as np
n = 2
X = np.empty(shape=[0, n])
for i in range(5):
for j in range(2):
X = np.append(X, [[i, j]], axis=0)
print X
which will give you:
[[ 0. 0.]
[ 0. 1.]
[ 1. 0.]
[ 1. 1.]
[ 2. 0.]
[ 2. 1.]
[ 3. 0.]
[ 3. 1.]
[ 4. 0.]
[ 4. 1.]]