python中矩阵、数组使用@的含义

作者:袖梨 2026-08-13

处理python中矩阵、数组使用@的含义这类问题时,先确认目标场景,再按步骤核对配置或玩法细节。

1.当@连接的两项为数组时,有两种计算形式:

(1)符合矩阵运算维度:(m×n)维×(n×y)维 =(m×y)维

运算方式与矩阵相乘类似:对应位置相乘再相加,运算期间类类型都为数组

python中矩阵、数组使用@的含义

例子见下:

a = np.arange(12).reshape(3,4)b = np.arange(12).reshape(4,3)print(a)'''[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]'''print(b)'''[[ 0  1  2] [ 3  4  5] [ 6  7  8] [ 9 10 11]]'''c = a @ bprint(c)'''[[ 42  48  54] [114 136 158] [186 224 262]]'''#<class 'numpy.ndarray'>

(2)不符合矩阵运算维度:(m×n)维×(1×n)维 =(1×m)维

运算方式为:第一个数组的第1行与第二个数组对应位置相乘相加后,得到结果的第1位,第一个数组的第2行与第二个数组对应位置相乘相加后,得到结果的第2位…

例子见下:

a = np.arange(12).reshape(3,4)b = np.arange(4)print(a)'''[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]'''print(b)#[0 1 2 3]c = a @ bprint(c)'''[14 38 62]'''

2.当@连接的两项为矩阵时

维度必须符合矩阵运算:(m×n)维×(n×y)维 =(m×y)维

a = np.mat(np.arange(12).reshape(3,4)) #<class 'numpy.matrix'>b = np.mat(np.arange(4).reshape(3,4))print(a)'''[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]'''print(b)'''[[0] [1] [2] [3]]'''c = a @ bprint(c)'''[[14] [38] [62]]'''

3.当@连接的两项一项为矩阵,一项为数组时

运算维度维度:(m×n)维×(1×n)维 =(1×m)维

运算方式为:第一个数组的第1行与第二个数组对应位置相乘相加后,得到最终结果的第1位,第一个数组的第2行与第二个数组对应位置相乘相加后,得到最终结果的第2位…

运算结果为矩阵

a = np.mat(np.arange(12).reshape(3,4))b = np.arange(4)c = a @ bprint(a)'''[[ 0  1  2  3] [ 4  5  6  7] [ 8  9 10 11]]'''print(b)'''[0 1 2 3]'''print(c)#[[14 38 62]]

相关文章

精彩推荐