gpt4 book ai didi

python - 在numpy中索引行和列

转载 作者:行者123 更新时间:2023-12-03 18:50:34 24 4
gpt4 key购买 nike

a = np.array(list(range(16).reshape((4,4))
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
说我想要中间的方块。这样做似乎是合理的:
a[[1,2],[1,2]]
但我明白了:
array([5, 10])
这有效,但似乎不优雅:
a[[1,2],:][:,[1,2]]
array([[5, 6],
[9, 10]])
所以我的问题是:
  • 为什么会这样?需要什么前提才能使实现的方式合理?
  • 是否有一种规范的方法可以一次选择多个索引?
  • 最佳答案

    我想您可以在 advanced indexing 上阅读更多详细信息.基本上,当您按列表/数组对数组进行切片时,数组将被广播和迭代 一起 .
    在你的情况下,你可以这样做:

    idx = np.array([1,3])
    a[idx,idx[:,None]]
    或者如上面的文档所示:
    a[np.ix_(idx, idx)]
    输出:
    array([[ 5, 13],
    [ 7, 15]])

    关于python - 在numpy中索引行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66974217/

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