【发布时间】: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个元素:)