gpt4 book ai didi

python - 在 numpy 中创建一个新数组,以不同的多样性选择性地复制旧数组的行

转载 作者:行者123 更新时间:2023-11-28 20:05:30 25 4
gpt4 key购买 nike

我在 numpy 中有一个包含 n 行的二维数组,以及一个包含 n 个元素的一维数组,其中第 i 个元素指定原始数组的第 i 行应进入新数组的次数。例如,如果我的二维数组是:

array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5]])

我的一维数组是

array([2, 0, 1, 0, 3])

那么我希望新数组是:

array([[1, 1, 1],
[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[5, 5, 5],
[5, 5, 5]])

我不知道如何有效地做到这一点,有人有什么想法吗?

最佳答案

你可以使用 np.repeat()重复数组的元素。

In [174]: x.repeat(np.array([2, 0, 1, 0, 3]), axis=0)
Out[174]:
array([[1, 1, 1],
[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[5, 5, 5],
[5, 5, 5]])

详细信息:

In [175]: x
Out[175]:
array([[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
[4, 4, 4],
[5, 5, 5]])

In [176]: repeat_on = np.array([2, 0, 1, 0, 3])

In [177]: x.repeat(repeat_on, axis=0)
Out[177]:
array([[1, 1, 1],
[1, 1, 1],
[3, 3, 3],
[5, 5, 5],
[5, 5, 5],
[5, 5, 5]])

关于python - 在 numpy 中创建一个新数组,以不同的多样性选择性地复制旧数组的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30111771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com