back_vec = np.array([(joint[4].x - joint[3].x, joint[4].y - joint[3].y) for joint in joints])
back_vec_range = np.max(back_vec, axis=0) - np.min(back_vec, axis=0)
当我运行包含以下代码的程序时。我一次又一次收到零数组归约错误,但无法修复该错误。请帮我。下面给出了相应的错误:
Traceback (most recent call last):
File "main.py", line 81, in <module>
main()
File "main.py", line 50, in main
(correct, feedback) = evaluate_pose(pose_seq, args.exercise)
File "D:\Techolon\pose-trainer\evaluate.py", line 19, in evaluate_pose
return _shoulder_press(pose_seq)
File "D:\Techolon\pose-trainer\evaluate.py", line 215, in _shoulder_press
back_vec_range = np.max(back_vec, axis=0) - np.min(back_vec, axis=0)
File "C:\Users\Tamjeed Anees\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py", line 2505, in amax
initial=initial)
File "C:\Users\Tamjeed Anees\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py", line 86, in _wrapreduction
return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
ValueError: zero-size array to reduction operation maximum which has no identity
[我认为,如果joints
为空,则不应执行任何计算……但是,如果您确实要这样做,可以将参数initial
传递给np.max()
。我建议将其设置为可能的最小值,例如负无穷大。
x.max(axis=0, initial=-np.inf)