我目前有一个形状的Numy数组(71、136、136、130);确切的维度各不相同.这是[时间,Z,Y,X]形式的体积数据(例如,温度).我允许用户为最大、最小或平均指定折叠Z、Y、X体积元素的时间范围.
通过使用While循环一次获取一个时间片,我成功地在20-70(示例索引)的时间索引范围内以元素方式折叠了最大和最小array.然而,这种循环方法在计算平均值时不起作用.
我应该能够在没有循环 struct 的情况下执行这些操作(最大、最小或平均).Np.Maximum()和np.Minimum()函数需要两个数组,所以我似乎不能安排像np.maximum(array[20:70,:,:,:])
这样的代码,我希望Python/numpy推断我只想将索引20-70用于返回的最大array.Np.ean()函数的操作似乎略有不同,但原则上我希望它以相同的方式工作;仅在指定的时间索引上对数据元素进行平均.如有任何建议,我们将不胜感激.谢谢.
基于注释,下面是一些简化的示例代码.请注意,当我获得数据时,它是FULL_ARRAY的形式;我实际上并不手动构造它.
import numpy as np
time0_xy_data = np.array([[22, 80, 17, 98, 42, 46], [36, 11, 95, 23, 77, 12]])
time1_xy_data = np.array([[12, 97, 85, 68, 44, 43], [15, 84, 91, 33, 13, 56]])
time2_xy_data = np.array([[45, 26, 37, 93, 2, 28], [73, 78, 72, 48, 62, 62]])
time3_xy_data = np.array([[42, 67, 59, 60, 55, 67], [21, 32, 88, 87, 23, 15]])
full_array = np.array([time0_xy_data, time1_xy_data, time2_xy_data, time3_xy_data])
# Get the element-wise maximum of [0:1,:,:,:]
maximum_slice = np.maximum(full_array[0:1 :, :])
print(maximum_slice)
# What I expect to get back:
maximum_slice = np.array([[22, 97, 85, 98, 44, 46], [36, 84, 95, 33, 77, 56]])