【问题标题】:Trying to get the maximum value every 12th element尝试每 12 个元素获取最大值
【发布时间】:2021-10-12 14:38:01
【问题描述】:

我正在尝试获取(3d 数组的)第一个轴的最大值,但仅获取每 12 个元素的最大值。

使用随机 3D numpy 数组(第一个轴可被 12 整除),第一个轴的大小为 36。我想获得前 12 个元素的最大值,然后是 12 - 24,然后是 24 - 36.

我试过了:

## 3d array

array = np.random.rand(36,20,30)

# get the maximum for every 12 units:

maximum_every_12 = np.zeros((int(array.shape[0]/12),array.shape[1],array.shape[2]))

for i in range(12):
    maximum_every_12[i,:,:] = np.max(array[i::12,:,:],axis=0)

但我得到一个索引错误:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
/tmp/ipykernel_1643197/1714711606.py in <module>
      8 
      9 for i in range(12):
---> 10     maximum_every_12[i,:,:] = np.max(array[i::12,:,:],axis=0)

IndexError: index 3 is out of bounds for axis 0 with size 3

如何根据 3d 数组的第一个轴(大小为 36、20、30)获得每 12 个元素的最大值。

【问题讨论】:

  • 所以你想要每个 12x20x30 数组的最大标量?
  • 是的!每12个元素:)

标签: python numpy jupyter


【解决方案1】:

您的数组大小错误。 maximum_every_12 的第一个轴的长度为 36 / 12,即 3。因此您不能迭代 range(12),它在 i = 4 处失败。您必须遍历 range(36/12)

【讨论】:

    猜你喜欢
    • 2018-06-18
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多