当我将大小为(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]
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。