その場合はエラーになるでしょう。
何がしたいのでしょうか?
numpyの場合で考えます。
x @ y とします。
x と y の一方がスカラーである場合はエラーになります。
x と y が同じ長さの一次元配列であれば内積になりますが、長さが違うとエラーになります。
x と y が二次元配列で、x.shape[1]とy.shape[0]が等しければ、
x @ y は (x.shape[0], y.shape[1])の形状を持つ行列積になります。
x.shape[1]とy.shape[0]が等しくなければエラーになります。
より一般的に言うと、
explanation
1@演算子があるとpythonインタプリタは__matmul__を呼び出します。
2従って@演算子が何をするかはクラスの定義次第です。
以下に例を示します。
python
1>>> class fake_int(int):
2... def __matmul__(self, x):
3... return (self + x)/2
4...
5>>> x = fake_int(2)
6>>> y = fake_int(3)
7>>>
8>>> print(x @ y)
92.5
explanation
1ここではfake_intつまり偽整数のクラスを定義しました。
2@が平均値を出すように定義しておいたので、結果は2.5になっています。
3上記のnumpyの場合はで書いたことは、numpyのndarrayには__matmul__メソッドが
4そういうふうに定義されているからです。