gpt4 book ai didi

python - 沿每个轴查找非零元素的最大索引

转载 作者:行者123 更新时间:2023-11-28 21:49:35 26 4
gpt4 key购买 nike

我有一个 3d numpy 数组。我想找到最大的 xyz 沿三个轴的非零元素元素的坐标阵列。我该怎么做?

所以对于下面的例子 x=1, y=2, z=1

array([[[1, 1, 0],
[1, 1, 0],
[0, 0, 0]],

[[0, 0, 0],
[1, 0, 0],
[1, 0, 0]],

[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]])

最佳答案

使用 np.nonzero 获取非零元素的索引并用 np.column_stack 将它们堆叠成列最后在带有 .max(0) 的列中找到 max .实现看起来像这样 -

np.column_stack((np.nonzero(A))).max(0)

看起来有一个内置函数np.argwhere用于获取堆叠在 2D 数组中的所有非零元素的索引。因此,您可以简单地做 -

np.argwhere(A).max(0)

sample 运行-

In [50]: A
Out[50]:
array([[[1, 1, 0],
[1, 1, 0],
[0, 0, 0]],

[[0, 0, 0],
[1, 0, 0],
[1, 0, 0]],

[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]])

In [51]: np.column_stack((np.nonzero(A))).max(0)
Out[51]: array([1, 2, 1])

In [52]: np.argwhere(A).max(0)
Out[52]: array([1, 2, 1])

关于python - 沿每个轴查找非零元素的最大索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33265810/

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