@= 行列積代入
最終更新:2026-09-22
@= 行列積代入
@= は左辺と右辺の行列積を破壊的に行います。x = x @ y と等価です。
| カテゴリ | 演算子 |
|---|---|
| 種類 | 演算子 |
📝 構文
x @= y
▶ 例
下のコードを編集し「実行」をクリックすると、出力パネルに結果が表示されます:
実行結果:
[[19, 22], [43, 50]]
ℹ️ 説明 @= は行列積に numpy などのライブラリが必要です。標準の組み込み型にはこの演算は定義されていません。
💡 関連するケース
さらに多くのケースは近日公開予定です。
❓ よくある質問
Q`@=` にはどのような環境が必要ですか?
Aオブジェクトが `__imatmul__` または `__matmul__` を実装している必要があり、通常は NumPy です:`a @= b` は配列の行列積を原地で行います。組み込みの `list`、`int` は非対応で `TypeError` になります。
Q`@=` と a = a @ b に違いはありますか?
A`@=` はまず `__imatmul__` を試して原地演算します(NumPy 配列だと原地変更)。`__imatmul__` がないと `a = a @ b` に退化します。結果は通常同じですが、オブジェクトの `id` は異なることがあります。
QNumPy を入れずに `@=` を使えますか?
A使えます。カスタムクラスが `__imatmul__`(または `__matmul__`)を実装すれば `@=` をサポートします。組み込みの `list`、`int` などは未実装のため `TypeError` になります。