![](/img/trans.png)
[英]Remove column from new matrix in Python without changing original matrix
[英]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.