gpt4 book ai didi

python - numpy 选择每隔 n 个条目

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:19 25 4
gpt4 key购买 nike

有没有人知道在 numpy 数组中每隔一组选择 n 个条目的聪明方法?例如,在这里我想选择所有“唯一”条目 0、1、4、5、8、9 等(n=2)而不求助于排序:

[[ 0  2]
[ 1 3]
[ 2 0]
[ 3 1]
[ 4 6]
[ 5 7]
[ 6 4]
[ 7 5]
[ 8 10]
[ 9 11]
[10 8]
[11 9]
[12 14]
[13 15]
[14 12]
[15 13]]

事先构建索引数组是一种选择,但我想知道是否有人有更好的主意!

最佳答案

您可以 reshape 数组以添加长度为 2 的额外维度:

In [10]: x.reshape(-1,2,2)
Out[10]:
array([[[ 0, 2],
[ 1, 3]],

[[ 2, 0],
[ 3, 1]],

[[ 4, 6],
[ 5, 7]],

[[ 6, 4],
[ 7, 5]],

[[ 8, 10],
[ 9, 11]],

[[10, 8],
[11, 9]],

[[12, 14],
[13, 15]],

[[14, 12],
[15, 13]]])

然后沿第一个轴选择所有其他项目:

In [11]: x.reshape(-1,2,2)[::2]
Out[11]:
array([[[ 0, 2],
[ 1, 3]],

[[ 4, 6],
[ 5, 7]],

[[ 8, 10],
[ 9, 11]],

[[12, 14],
[13, 15]]])

最后将其重新整形为二维数组:

In [12]: x.reshape(-1,2,2)[::2].reshape(-1,2)
Out[12]:
array([[ 0, 2],
[ 1, 3],
[ 4, 6],
[ 5, 7],
[ 8, 10],
[ 9, 11],
[12, 14],
[13, 15]])

关于python - numpy 选择每隔 n 个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32661348/

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