【问题标题】:Finding the minimum value in a cluster of array using python使用python查找数组簇中的最小值
【发布时间】:2020-06-17 17:56:37
【问题描述】:

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

这就是问题所在。

假设我有一个包含浮点数的数组 (size = (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】:

    我不确定它的速度,但使用 numpy 切片应该可以简化您的工作。 您可以避免所有这些 for 循环。 这是一些示例代码

    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.amin(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]]
    
    1
    

    你也可以查看tutorial

    【讨论】:

      猜你喜欢
      • 2014-02-17
      • 2018-09-24
      • 2010-09-18
      • 2014-11-01
      • 2016-01-14
      • 2016-08-12
      • 1970-01-01
      相关资源
      最近更新 更多