有什么方法可以消除零尺寸数组归约错误?

问题描述 投票:0回答:1
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
python numpy
1个回答
0
投票

[我认为,如果joints为空,则不应执行任何计算……但是,如果您确实要这样做,可以将参数initial传递给np.max()。我建议将其设置为可能的最小值,例如负无穷大。

x.max(axis=0, initial=-np.inf)
© www.soinside.com 2019 - 2024. All rights reserved.