繁体   English   中英

Python Numpy 将矩阵添加到原始矩阵(更改原始矩阵)

[英]Python Numpy adding matrix to original matrix (changing original)

嗨,我想使用 Numpy 将矩阵添加到另一个矩阵。 我可以添加两个矩阵,但似乎找不到将其添加到原始矩阵的方法。 我总是通过两个矩阵的组合得到一个“新”矩阵。 有没有办法用原始矩阵+另一个矩阵的总和替换矩阵?

谢谢!

编辑: 代码:

for i in tqdm(range(len(x_test_da[y_test_orig == 6]))):
  x_test_da[y_test_orig == 6][i] += x_test_da[y_test_orig == 9][0]

这里的问题是您的循环没有写入x_test_da 当你做

x_test_da[y_test_orig == 6][i] += ...

这相当于

temp = x_test_da[y_test_orig == 6]
temp[i] += ...

其中temp是一个不受x_test_da数组支持的数组,因为x_test_da[y_test_orig == 6]是一种无法创建视图的高级索引操作。 您正在写入由高级索引操作创建的新数组。

即使你的循环意味着你想要的,它仍然会非常低效。 它在每次迭代中重复评估x_test_da[y_test_orig == 6]x_test_da[y_test_orig == 9]的不必要工作,在循环的每次迭代中花费与len(y_test_orig)成正比的时间,并且它正在执行 Python 级别的循环以一次分配一个值,而不是将工作推送到 NumPy。

放下循环。 让 NumPy 处理这个:

x_test_da[y_test_orig == 6] += x_test_da[y_test_orig == 9][0]

您不会以这种方式获得 tqdm 进度条,但与原始循环不同的是,这应该足够快,您不需要进度条。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM