以下是一个使用Python实现的示例代码,该代码可以在一个随机的(10,10)的二维数组中找出最大的(5,5)的子数组。 import numpy as np
# 创建一个随机的(10,10)的二维数组
arr = np.random.randint(1, 100, (10,10))
# 计算每个(5,5)的子数组的总和,并找到最大值
max_sum = -np.inf
for i in range(6):
for j in range(6):
sub_array = arr[i:i+5, j:j+5]
sub_sum = np.sum(sub_array)
if sub_sum > max_sum:
max_sum = sub_sum
max_array = sub_array
#if
#for
#for
# 输出结果
print("原始数组:\n{}".format(arr))
print("最大的(5,5)子数组:\n{}".format(max_array))
print("子数组总和:{}".format(max_sum))
输出: #原始数组:
[[99 97 56 85 40 17 69 81 96 45]
[65 27 23 98 8 99 29 98 73 87]
[71 68 25 65 74 98 46 50 6 75]
[79 95 50 2 65 87 98 31 39 81]
[ 6 32 20 87 56 44 67 12 34 7]
[10 25 1 77 11 28 41 29 3 25]
[76 40 59 57 58 22 23 21 51 83]
[ 2 23 10 44 30 33 40 38 44 42]
[34 41 9 88 64 68 78 19 36 35]
[39 72 20 2 29 84 30 90 61 52]]
#最大的(5,5)子数组:
[[87 56 44 67 12]
[77 1 28 41 29]
[57 59 22 23 21]
[44 10 33 40 38]
[72 20 84 30 90]]
子数组总和:856 详细问题问答
|