目前我正在开展一个项目,在这个项目中,我需要找出坐标以及大数组中最大元素的值(比如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的数组。
答案 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)