If I have a vector layer in QGIS, how do I use Python to find the maximum value which a given field has? I need to convert the values in one field into values between 0 and 1. I guess I therefore need to set it to
val/maxVal. That's why I need to find the maximum value.
This does not work in qgis3. See below for updated answer
It is not necessary to get a complete list of field values. In QgsVectorLayer exists 'maximumValue' method. So, this works well and it's shorter:
layer = iface.activeLayer() idx = layer.fieldNameIndex('fieldName') print layer.maximumValue(idx)
The accepted answer does not work in QGIS3.
Now one has to do:
fieldname='id' layer=iface.activeLayer() idx=layer.fields().indexFromName(fieldname) print(layer.maximumValue(idx))
(I am setting fieldname as the first line to make it easier to cut and paste for someone wanting to test it with their layer)