python中3d数组的最大值

2024-06-09 05:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在python中找到3d数组的最大值。 我试过了

image_file1 = open("lena256x256.bmp","rb")
img_i = PIL.Image.open(image_file1)
pix = numpy.array(img_i);
maxval= max(pix)

但我犯了个错误

 File "test.py", line 31, in <module>
    maxval= max(pix)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

我在这里看不到我的错误,请帮帮我。


Tags: imageimgpil错误数组openarrayfile1
0条回答
网友
1楼 · 发布于 2024-06-09 05:25:13

您正在使用不理解多维NumPy数组的内置max函数。您必须使用以下选项之一:

  • pix.max()
  • numpy.max(pix)
  • ^{}

在1D NumPy数组的情况下,它们也比内置的要快。

网友
2楼 · 发布于 2024-06-09 05:25:13

根据乔治斯写的,你可以使用 flat获取数组的迭代器,然后执行一些操作 就像

m = reduce(max, ar.flat)

编辑:删除lambda,默认的max应该是正常的。

网友
3楼 · 发布于 2024-06-09 05:25:13

Max需要一个值,错误消息应该很清楚,您需要使用^{}代替。

maxval = numpy.amax(pix)

相关问题 更多 >