老师参与

numpy库矩阵乘法得到的结果不合常理

澄碧钓徒 发表于2019年06月17日
<p><code class="brush:python;toolbar:false" >from&nbsp;numpy&nbsp;import&nbsp;* array([8,&nbsp;3,&nbsp;0])&nbsp;*&nbsp;array([[1,&nbsp;23,&nbsp;25],&nbsp;[4,&nbsp;14,&nbsp;15],&nbsp;[5,&nbsp;23,&nbsp;4]])&nbsp;%&nbsp;26</code></p><p>array([[ 8, 17,&nbsp; 0],</p><p>&nbsp; &nbsp; &nbsp; &nbsp;[ 6, 16,&nbsp; 0],</p><p>&nbsp; &nbsp; &nbsp; &nbsp;[14, 17,&nbsp; 0]], dtype=int32)</p><p>按说乘了以后不应该是个行矩阵吗为什么出来的却是3行3列?学了密码学感觉numpy好容易踩坑。。。</p>
1 回复

    1楼

  • 王恺-南开大学 发表于2019年06月18日
    1 | 2 | 举报
    <p>*或multiply是对应元素的乘积,而dot才是矩阵乘,所以将第二条语句改成下面的形式能够得到预期的矩阵乘结果:</p><p><code class="brush:python;toolbar:false" >dot(array([8,&nbsp;3,&nbsp;0]),&nbsp;array([[1,&nbsp;23,&nbsp;25],&nbsp;[4,&nbsp;14,&nbsp;15],&nbsp;[5,&nbsp;23,&nbsp;4]]))&nbsp;%&nbsp;26</code></p>
    王恺-南开大学 发表于2019年06月18日
    添加评论