开发者社区> 问答> 正文

numpy矩阵向量乘法

当我将大小为(nxn)*(nx 1)的两个numpy数组相乘时,会得到大小为(nxn)的矩阵。按照正常的矩阵乘法规则,期望(nx 1)向量,但是我根本找不到在Python的Numpy模块中如何完成此操作的任何信息。

事实是,我不想手动实现它以保持程序的速度。

示例代码如下所示:

a = np.array([[ 5, 1 ,3], [ 1, 1 ,1], [ 1, 2 ,1]]) b = np.array([1, 2, 3])

print a*b

[[5 2 9] [1 2 3] [1 4 3]] 我想要的是:

print a*b

[16 6 8]

展开
收起
保持可爱mmm 2020-02-06 22:32:16 561 0
1 条回答
写回答
取消 提交回答
  • Everything in Java are passed-by value.。如果是Array(只不过是Object),则数组引用按值传递。(就像对象引用按值传递)。

    当您将数组传递给其他方法时,实际上是复制对该数组的引用。

    通过该引用对数组内容进行的任何更改都会影响原始数组。 但是,将引用更改为指向新数组不会更改原始方法中的现有引用。 看到这篇文章。

    Java是“按引用传递”还是“按值传递”?

    请参见以下工作示例:-

    public static void changeContent(int[] arr) {

    // If we change the content of arr. arr[0] = 10; // Will change the content of array in main() }

    public static void changeRef(int[] arr) { // If we change the reference arr = new int[2]; // Will not change the array in main() arr[0] = 15; }

    public static void main(String[] args) { int [] arr = new int[2]; arr[0] = 4; arr[1] = 5;

    changeContent(arr);
    
    System.out.println(arr[0]);  // Will print 10.. 
    
    changeRef(arr);
    
    System.out.println(arr[0]);  // Will still print 10.. 
                                 // Change the reference doesn't reflect change here..
    

    }

    问题来源于stack overflow

    2020-02-06 22:33:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
高维向量检索技术在PG中的设计与实践 立即下载
《Proxima:多模态向量检索引擎》 立即下载
低代码开发师(初级)实战教程 立即下载