尝试每 12 个元素获取最大值
Trying to get the maximum value every 12th element
我正在尝试获取(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 个元素的最大值。
你的数组大小有误。 maximum_every_12
的第一个轴的长度为 36 / 12
,即 3。因此您不能迭代 range(12)
,它在 i = 4
处失败。您必须遍历 range(36/12)
.
我正在尝试获取(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 个元素的最大值。
你的数组大小有误。 maximum_every_12
的第一个轴的长度为 36 / 12
,即 3。因此您不能迭代 range(12)
,它在 i = 4
处失败。您必须遍历 range(36/12)
.