我想要重复的行
numpy
基于每行中第一个项的数值的数组。因此,如果值为1,则该行不会重复,但如果值为3,则该行将被表示3次。我试着用
np.repeat
和
np.tile
但我不知道他们是不是合适的工具,我还没想好是否有办法做到这一点。
下面是我随机生成的数组:
[[[3 1 3 1 2]
[4 4 4 2 0]
[3 4 4 4 0]
[1 4 3 3 0]]
[[4 2 0 2 1]
[2 1 2 0 3]
[4 1 3 4 3]
[2 3 2 0 0]]]
我的目标是:
[[[3 1 3 1 2]
[3 1 3 1 2]
[3 1 3 1 2]
[4 4 4 2 0]
[4 4 4 2 0]
[4 4 4 2 0]
[4 4 4 2 0]
[3 4 4 4 0]
[3 4 4 4 0]
[3 4 4 4 0]
[1 4 3 3 0]]
[[4 2 0 2 1]
[4 2 0 2 1]
[4 2 0 2 1]
[4 2 0 2 1]
[2 1 2 0 3]
[2 1 2 0 3]
[4 1 3 4 3]
[4 1 3 4 3]
[4 1 3 4 3]
[4 1 3 4 3]
[2 3 2 0 0]
[2 3 2 0 0]]]
这是我目前掌握的密码
array = np.random.randint(5, size = (2, 4,5))
for a in array:
for b in a:
array = np.tile(a, (b[0],1))
如果我打印
b[0]
,我可以得到每个值。我想用这些值来复制每一行。
3
4
3
1
4
2
4
2
所以我想我可以循环遍历这些值,然后将每一行乘以相应的值来添加新行,但是我的结果一次只能重复第二个数组。
[[4 2 0 2 1]
[2 1 2 0 3]
[4 1 3 4 3]
[2 3 2 0 0]
[4 2 0 2 1]
[2 1 2 0 3]
[4 1 3 4 3]
[2 3 2 0 0]]
我哪里做错了?我不应该用
np.瓷砖
?