Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.4k views
in Technique[技术] by (71.8m points)

python - Concatenate arrays with different shape duplicating values

I have one array with shape: (15,2). I also have another array with values: [0, 3, 5].

I want to create another column in the first array with values from the second array, where the first 5 rows has value 0, rows 6-10 has value 3, and the last 5 rows has value 5.

like so:

[0,
 0,
 0,
 0,
 0,
 3,
 3,
 3,
 3,
 3,
 5,
 5,
 5,
 5,
 5]

is there any numpy method that does that?

Thanks!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You can use numpy's built-in repeat and stacking:

a = np.zeros((15,2))
b = np.array([0,3,5])
np.hstack((a, np.repeat(b,5)[:,None]))

output:

[[0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 0.]
 [0. 0. 3.]
 [0. 0. 3.]
 [0. 0. 3.]
 [0. 0. 3.]
 [0. 0. 3.]
 [0. 0. 5.]
 [0. 0. 5.]
 [0. 0. 5.]
 [0. 0. 5.]
 [0. 0. 5.]]

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...