Reputation: 113
I get the following error when running the code below.
ValueError: attempt to get argmax of an empty sequence
The code is processing information from images sent to it from simulator.
It runs well at first but when the array Rover.nav_angles
is empty i get the error although there is an if condition
if Rover.nav_angles is not None:
Max_angle_points=np.argmax(Rover.nav_angles)
MAX_DIST=np.max(Rover.nav_dists[Max_angle_points])
Upvotes: 11
Views: 43951
Reputation: 27869
Use:
if Rover.nav_angles:
...
To check for emptiness and None
.
But it seems that you deal with numpy
array so use:
if Rover.nav_angles.size:
...
Upvotes: 5
Reputation: 2801
In python it is mostly conceived better to try
things rather than setting conditions around it.
try:
Max_angle_points=np.argmax(Rover.nav_angles)
MAX_DIST=np.max(Rover.nav_dists[Max_angle_points])
except ValueError:
pass
# specify what the code should do, if the exception occurs.
To your actual problem: empty
does not necessarily mean that your array is None
. If you want to check with a condition, try
if Rover.nav_angles:
Max_angle_points=np.argmax(Rover.nav_angles)
MAX_DIST=np.max(Rover.nav_dists[Max_angle_points])
Upvotes: 0