1. ホーム
  2. python

[解決済み】Numpy/Python Array Value エラー

2022-02-22 05:05:10

質問

numpyの配列を使ってロボットアームのエンドエフェクタ位置を計算する関数を作ろうとしていますが、コードを実行するとエラーになります。角度を引数として渡す関数があります。

def FinalPosition(angle1, angle2, angle3, angle4, angle5, angle6):

私のIDEは配列の最後の2行をハイライトしています。

    T1 = np.array([np.cos(angle1), -np.sin(angle1)*np.cos(b1), np.sin(angle1)*np.sin(b1), a1*np.cos(angle1)],
        [np.sin(angle1), np.cos(angle1)*np.cos(b1), -np.cos(angle1)*np.sin(b1), a1*np.sin(angle1)],
        [0, np.sin(b1), np.cos(b1), d1],
        [0, 0, 0, 1])

というエラーが出ています。

     .............................................in FinalPosition
[0, np.sin(b1), np.cos(b1), d1], [0, 0, 0, 1])
ValueError: only 2 non-keyword arguments accepted

何が問題なのかよくわからないのですが、どなたか説明してください。

edit: 最後の2行の上のIDEハイライトにこう書いてあります。

Expected type 'Optional[bool]', got 'List[Union[int | TypeVar('T'), Any]]' instead less... (Ctrl+F1 Alt+T) 

この検査では、関数呼び出し式の型エラーが検出されます。動的ディスパッチとダックタイピングにより、限られたケースですが、有用なケースで可能です。関数パラメータの型は、docstring や Python 3 の関数アノテーションで指定することができます。

解決方法は?

コメントで @hpaulj と @ForceBru が回答しています。括弧のセットが欠けています。

np.array([ your lists ])