处理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'>
运算方式为:第一个数组的第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]'''
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]]'''
运算方式为:第一个数组的第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]]