gpt4 book ai didi

python - 切片 numpy 数组以获得第 n 列

转载 作者:太空狗 更新时间:2023-10-30 01:50:31 25 4
gpt4 key购买 nike

有了下面的示例数组,您如何按列切片以获得以下内容(例如第 3 列)[0, 0, ..., 1338, 1312, 1502, 0, ...]寻找最有效的方法,谢谢!

>>> r
array([[[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]],

[[ 0, 0, 1338],
[ 0, 0, 1312],
[ 0, 0, 1502],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]],

[[ 0, 0, 1400],
[ 0, 0, 1277],
[ 0, 0, 1280],
[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]]], dtype=uint16)

最佳答案

对于任何维度的通用 ndarray,一种方法是 -

arr[...,n]

要获得扁平化版本,请使用 .ravel() 方法 -

arr[...,n].ravel()

sample 运行-

In [317]: arr
Out[317]:
array([[[[2, 1, 2],
[0, 2, 3],
[1, 0, 1]],

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


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

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

In [318]: arr[...,2].ravel()
Out[318]: array([2, 3, 1, 0, 2, 1, 0, 3, 1, 1, 0, 2])

关于python - 切片 numpy 数组以获得第 n 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543660/

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