使用python查找数组簇中的最小值

问题描述 投票:0回答:1

我需要一些有关使用python进行编码的帮助。

这里是问题。

假设我有一个包含浮点数的数组(大小=(50,50))。我想找到每个单元簇的最小值(大小=(10,10))。因此,总共我将有25个值。这是我到目前为止所做的,也许还有另一种方法可以使程序运行得更快,因为我需要它来处理相当大的数组(比如说1 mil x 1 mill的单元格)。

import numpy as np
import random
def mini_cluster(z,y,x):
    a = []
    for i in range(y,y+10):
        for j in range(x,x+10):
            a.append(z[i,j])
    return min(a) 

z = np.zeros(shape=(50,50))

for i in range (len(z)):
    for j in range(len(z)):
        z[i,j] = random.uniform(10,12.5)

mini = []
for i in range(0,len(z),10):
    for j in range(0,len(z),10):
        mini.append(mini_cluster(z,i,j)) 
python-3.x cluster-computing minimum
1个回答
0
投票

我不确定它的速度,但是如果您使用numpy,它可以简化您的工作。这是示例代码

import numpy as np
arr=[[1,2,3,8],[4,5,6,7],[8,9,10,11],[0,3,5,9]]
arr_np = np.array(arr)
print(arr_np)
cluster= arr_np[:3,:3]
print('\n')
print(cluster)
print('\n')
print(np.amax(cluster))

[[ 1  2  3  8]
 [ 4  5  6  7]
 [ 8  9 10 11]
 [ 0  3  5  9]]

[[ 1  2  3]
 [ 4  5  6]
 [ 8  9 10]]

10
© www.soinside.com 2019 - 2024. All rights reserved.