原来(128,512)的数组通过格点累加插值成(147,147),并进行区域平均python
时间: 2024-02-01 13:02:03 浏览: 21
要将原始大小为(128, 512)的数组通过格点累加插值成目标大小为(147, 147)的数组,并进行区域平均,可以使用以下Python代码:
```python
import numpy as np
from scipy.ndimage import zoom
# 原始数组的大小
original_size = (128, 512)
# 目标数组的大小
target_size = (147, 147)
# 生成原始数组
original_array = np.random.random(original_size)
# 计算每个格点之间的插值比例
zoom_factor = (np.array(target_size) - 1) / (np.array(original_size) - 1)
# 使用scipy的zoom函数进行插值
interpolated_array = zoom(original_array, zoom_factor)
# 计算区域平均
averaged_array = np.mean(interpolated_array.reshape(target_size[0], -1, interpolated_array.shape[1]), axis=1)
```
这样,`averaged_array` 就是通过格点累加插值并进行区域平均后的结果数组。请注意,这里使用了 `numpy` 和 `scipy` 库来进行数组操作和插值。
相关问题
原来(128,512)的数组通过格点累加变成(147,147),并对累积区域进行区域平均python
要将原始大小为(128, 512)的数组通过格点累加变成目标大小为(147, 147)的数组,并对累积区域进行区域平均,可以使用以下Python代码:
```python
import numpy as np
# 原始数组的大小
original_size = (128, 512)
# 目标数组的大小
target_size = (147, 147)
# 生成原始数组
original_array = np.random.random(original_size)
# 计算格点之间的步长
step_x = original_size[1] // target_size[1]
step_y = original_size[0] // target_size[0]
# 创建目标数组
target_array = np.zeros(target_size)
# 遍历目标数组的每个元素
for i in range(target_size[0]):
for j in range(target_size[1]):
# 计算累加区域的起始和结束点
start_y = i * step_y
end_y = (i + 1) * step_y
start_x = j * step_x
end_x = (j + 1) * step_x
# 对累加区域进行区域平均
target_array[i, j] = np.mean(original_array[start_y:end_y, start_x:end_x])
```
这样,`target_array` 就是通过格点累加并对累积区域进行区域平均后的结果数组。请注意,这里使用了 `numpy` 库来进行数组操作和计算。
求网格点累加之后对应的区域平均python
如果你想在进行网格点累加之后,对应的区域进行平均,可以使用以下Python代码:
```python
import numpy as np
# 原始数组的大小
original_size = (128, 512)
# 目标数组的大小
target_size = (147, 147)
# 生成原始数组
original_array = np.random.random(original_size)
# 计算每个格点之间的步长
step_x = original_size[1] // target_size[1]
step_y = original_size[0] // target_size[0]
# 创建目标数组
target_array = np.zeros(target_size)
# 遍历目标数组的每个元素
for i in range(target_size[0]):
for j in range(target_size[1]):
# 计算累加区域的起始和结束点
start_y = i * step_y
end_y = (i + 1) * step_y
start_x = j * step_x
end_x = (j + 1) * step_x
# 对累加区域进行累加
summed_region = np.sum(original_array[start_y:end_y, start_x:end_x])
# 计算累加区域的平均值
average_region = summed_region / (step_x * step_y)
# 将平均值存储到目标数组中
target_array[i, j] = average_region
```
这样,`target_array` 就是网格点累加后对应区域的平均值。请注意,这里使用了 `numpy` 库来进行数组操作和计算。