找到嵌套数组中的最大元素时的ValueError

时间:2017-06-12 07:37:19

标签: python

目前我正在开展一个项目,在这个项目中,我需要找出坐标以及大数组中最大元素的值(比如500 X 5)。

所以我使用这个命令来查找数组的最大值:

@Override
public synchronized InputStream getInputStream() throws IOException {
    if (cachedInputStream != null) {
        return cachedInputStream;
    }

    System.out.println("Open " + getURL());
    InputStream inputStream = delegate.getInputStream();

    cachedInputStream = new FilterInputStream(inputStream) {
        @Override
        public void close() throws IOException {
            super.close();
            // Signal that the browser has finished.
        }
    };

    return cachedInputStream;
}

但我遇到了这个错误:

y= max(arr) #here arr is my huge array.

有人可以告诉我,我该怎么做才能纠正这个错误?

编辑:

具体来说,我的数组 arr 包含3行,每行本身就是一个大小为500 X 5的数组。

3 个答案:

答案 0 :(得分:1)

您使用的列表arr很可能是嵌套的,并且没有平面结构。由于列表中的一个元素本身就是列表,因此会导致错误。

答案 1 :(得分:1)

y = max(max(max(column) for row in arr for column in row)

会找到最大的元素。

答案 2 :(得分:1)

您可以先从numpy函数通过arr将数组arr.flatten()展平为一个列表。然后调用max(arr.flatten())以获取最大元素。

修改

以下是一个例子:假设您有一个多维数组' arr'作为python嵌套列表。

import numpy as np

table = np.asarray(arr)
max_arr=max(table.flatten())
print(max_arr)